मैं ईमेल और फोन फ़ील्ड पर क्लाइंट-साइड सत्यापन करने के लिए अपने एएसपी.नेट एमवीसी 4 प्रोजेक्ट में डेटा एनोटेशन का उपयोग कर रहा हूं। ईमेल सफलतापूर्वक क्लाइंट में मान्य है, लेकिन फोन नहीं है - यह मेरे अमान्य वर्ण दर्ज करने के लिए अनुमति देता है और केवल प्रपत्र (बजाय तुरंत बाद चरित्र लिखा गया)ईमेल डेटा एनोटेशन सत्यापन कार्य करता है लेकिन फोन
मॉडल में प्रस्तुत करने पर मुझे चेतावनी देते हैं:
[Required(ErrorMessage = "Email is required")]
[DataType(DataType.EmailAddress)]
[EmailAddress]
[Display(Name = "Email")]
public string Email{ get; set; }
[Required(ErrorMessage = "Mobile is required")]
[DataType(DataType.PhoneNumber)]
[Phone]
[Display(Name = "Mobile number")]
public string Mobile { get; set; }
ध्यान में रखते हुए मेरा मानना है कि मैं सही स्क्रिप्ट संदर्भ शामिल कर रहा हूँ:
<script type="text/javascript" src="~/Scripts/jquery.validate.min.js" ></script
<script type="text/javascript" src="~/Scripts/jquery.validate.unobtrusive.min.js" ></script>
..और एचटीएमएल सहायकों का उपयोग कर (मैं TextBoxFor उपयोग कर रहा हूँ बल्कि EditorFor से के रूप में मैं वर्ग गुण जो मेरे पास है लागू करने कर रहा हूँ स्पष्टता के लिए यहां छोड़ा गया)
@Html.LabelFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
@Html.TextBoxFor(model => model.Email, new { @type = "email" })
@Html.LabelFor(model => model.Mobile)
@Html.ValidationMessageFor(model => model.Mobile)
@Html.TextBoxFor(model => model.Mobile, new { @type = "phone" })
मुझे क्या याद आ रही है?
शायद ओपी से पूछना बेहतर होगा (टिप्पणी का उपयोग करके) किस फोन प्रकार का उपयोग किया जा रहा है; यह एक समर्थित प्रकार हो सकता है जिस स्थिति में यह उत्तर नहीं है ... – einpoklum
@OzAnt - क्या आप कह रहे हैं कि टाइप = "फोन" के बजाय मुझे नए प्रकार = "टेल" का उपयोग करना चाहिए ?? –
@LiamWeston - बिल्कुल नहीं: w3schools का कहना है कि एचटीएमएल 5 प्रकार के टेलीफोन के साथ एक टेलीफोन इनपुट प्रकार को परिभाषित करता है, फोन नहीं, लेकिन इस प्रकार को किसी भी ब्राउज़र द्वारा समर्थित नहीं है (जैसा कि मुझे लगता है कि प्रत्येक देश में फोन नंबर अलग हैं)। तो आप अपने फोन नंबर को अपने मॉडल में अपने स्वयं के रेगेक्स के साथ मान्य करने और क्लाइंट साइड पर इसे लागू करने से बेहतर हो सकते हैं। ऐसा लगता है कि यह एक संकेत है क्योंकि आईफोन टाइप = "टेल" को पहचानता है, और कीबोर्ड को मानक फोन कीबोर्ड पर पूरी तरह से बदलता है [link] http://html5doctor.com/html5-forms-input-types/#input -टेल – OzAnt