2012-06-29 5 views
7

मैं विचारों पैदा करते हैं और एक पाठ बॉक्सएक पाठ बॉक्स में वर्णों की लंबाई सीमित रेजर के Html.EditFor

@Html.EditorFor(model => model.AddressLine1) 

पैदा प्रासंगिक मॉडल मैं में कोड की निम्न पंक्ति के लिए MVC3 के रेजर इंजन का उपयोग कर रहा का उपयोग करते समय 55 को स्वीकार्य वर्णों की संख्या सीमित करने के लिए एक डेटा एनोटेशन विशेषता का उपयोग मी:

[StringLength(55)] 
public string AddressLine1 { get; set; } 

हालांकि यह उपयोगकर्ता एक लंबे समय तक पता तो केवल एक सत्यापन संदेश के माध्यम से बताया जाना जब वे कोशिश में टाइप करें और प्रपत्र प्रस्तुत करने के लिए अनुमति देता है । मैं टेक्स्टबॉक्स को 55 अक्षरों तक सीमित कैसे कर सकता हूं ताकि उपयोगकर्ता उस से अधिक टाइप करने में असमर्थ हो?

यदि मैं टेक्स्ट बॉक्स स्वयं उत्पन्न कर रहा था तो मैं इनपुट प्रकार के लिए अधिकतम लम्बाई विशेषता का उपयोग करूंगा लेकिन मुझे यकीन नहीं है कि Html.EditFor विधि का उपयोग करके एक ही परिणाम कैसे प्राप्त करें।

उत्तर

8
@Html.TextBoxFor(model => model.AddressLine1, new {maxlength = 55}) 

maxlength
हैं प्रकार विशेषता के मान पाठ, ईमेल, खोज, पासवर्ड, टेलीफोन, या url है, यह विशेषता वर्णों की अधिकतम संख्या (यूनिकोड कोड बिंदुओं में) निर्दिष्ट करती है जो उपयोगकर्ता दर्ज कर सकते हैं; अन्य नियंत्रण प्रकारों के लिए, इसे अनदेखा किया जाता है।

तुम भी डोम बदले बिना jQuery का उपयोग कर सकते हैं:

$('#AddressLine1').keypress(function(){ 
    return this.value.length < 55 
}) 
+2

यह HTML4 में पूरी तरह से काम करता है। एचटीएमएल 5 में वे सिर्फ नए प्रतिबंध हैं, मुझे लगता है। –

+0

@ राफेल अलाथॉस। आप सही हैं, मैंने IE8 में परीक्षण किया है, और यह समर्थित है। मैंने संपादित किया – gdoron

संबंधित मुद्दे