2012-03-21 12 views
10

मैक्सलेन्थ प्रॉपर्टी को सेट करने वाले मल्टीलाइन टेक्स्टबॉक्स (जो टेक्स्टएरिया उत्पन्न करता है) का उपयोग करते समय कोई प्रभाव नहीं पड़ता है। सबसे अच्छा कामकाज क्या है? मैं कम से कम बदसूरत जावास्क्रिप्ट आदि के साथ बुनियादी, इच्छित कार्यक्षमता प्राप्त करना चाहता हूं। उपयोगकर्ता को अधिकतम संख्या में वर्णों से अधिक प्रवेश करने से रोकें।मल्टीलाइन टेक्स्टबॉक्स के लिए अधिकतम लम्बाई कैसे सेट करें?

+0

[बहु पाठ बॉक्स के लिए maxlength निर्दिष्ट] (http के संभावित डुप्लिकेट:

Jquery कॉपी और पेस्ट निष्क्रिय करने के लिए।कॉम/प्रश्न/1334286/निर्दिष्ट-अधिकतम लम्बाई-मल्टीलाइन-टेक्स्टबॉक्स) –

उत्तर

5

यदि आप उपयोगकर्ता को यह जानना चाहते हैं कि वह वर्णों की मात्रा को पार कर गया है, तो आप कुंजीपटल ईवेंट से जुड़े जावास्क्रिप्ट फ़ंक्शन का उपयोग कर सकते हैं। यह फ़ंक्शन इनपुट की लंबाई का परीक्षण करेगा और अधिकतम प्रतिपादन पर पहुंचने पर वर्ण प्रतिपादन को रद्द कर देगा।

एक और विकल्प सबमिट करने के लिए इनपुट को सत्यापित करने के लिए RegularExpressionValidator नियंत्रण का उपयोग करना है।

मेरी राय में, पहला विकल्प अधिक बेहतर है।

मैं कोई कोड नहीं जोड़ रहा हूं क्योंकि Google सभी स्वादों के उदाहरणों से भरा है, यह एक बहुत ही आम काम है।

Here आपके पास एक नमूना खोज है जो मदद कर सकती है।

5

अरे pukipuki आप इस प्रकार कर सकते हैं:

<asp:TextBox ID="txtValue" runat="server"TextMode="MultiLine" Rows="10"Columns="50"></asp:TextBox> 

$(document).ready(function(){ 
var MaxLength = 250; 
$('#txtValue').keypress(function(e) 
{ 
    if ($(this).val().length >= MaxLength) 
{  
    e.preventDefault(); 
} 
});}); 

आप इस नीचे दिए गए लिंक में और अधिक देख सकते हैं: http://jquerybyexample.blogspot.in/2010/10/set-max-length-for-aspnet-multiline.html

+5

हालांकि यह उपयोगकर्ताओं को अधिक टेक्स्ट दर्ज करने से रोकता है, यह उन्हें बॉक्स में डिलीट या बैकस्पेस कुंजी (या कोई अन्य कुंजी) का उपयोग करने से रोकता है, ताकि वे ' एक बार सीमा तक पहुंचने के बाद पाठ को वास्तव में संपादित करें। –

+0

आपका उत्तर स्वीकृत एक से अधिक पूर्ण और उपयोगी है। आपके लिए +1 –

+2

कॉपी और पेस्ट करने के लिए काम नहीं करता – fubo

1

आपको लगता है कि पाठ बॉक्स आप DataAnnotations विशेषताओं का उपयोग कर सकते हैं करने के लिए एक मॉडल वस्तु बाँध उपयोग कर रहे हैं उस संपत्ति के अधिकतम लम्बाई सेट करने के लिए। मैं इसके बारे में एमवीसी पर आधारित हूं लेकिन इसे एएसपी.नेट के लिए भी काम करना चाहिए!

इस तरह आप किसी भी जावास्क्रिप्ट के साथ गड़बड़ नहीं करते हैं या मार्कअप में कुछ भी सेट नहीं करते हैं।

+1

दुर्भाग्य से वेबफॉर्म के पास एमवीसी जैसे डेटा एनोटेशन का मूल समर्थन नहीं है। लेकिन कुछ कामकाज हैं, मैं उन्हें देखता हूं, धन्यवाद! वांछित उत्तर का सही उदाहरण) +1 –

20

आप पुराने ब्राउज़र के बारे में परवाह नहीं है (supported browsers here देखें),
आप इस

<asp:TextBox ID="txt1" runat="server" TextMode="MultiLine" MaxLength="100" /> 

की तरह सामान्य रूप से MaxLength सेट और यह मजबूर कर सकते हैं एचटीएमएल

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    txt1.Attributes.Add("maxlength", txt1.MaxLength.ToString()); 
} 
0
के लिए बाहर मुद्रित करने के लिए

इसे आज़माएं ..

Dim script As String = "" 

    script = script + " <script type='text/javascript'> function CheckLength(obj) {" 
    script = script + " var object = document.getElementById(obj);" 
    script = script + " if (object.value.length > 5) {" 
    script = script + "  object.focus();" 
    script = script + "  object.value = object.value.substring(0, 5); " 
    script = script + "  object.scrollTop = object.scrollHeight; " 
    script = script + "  return false;" 
    script = script + " }" 
    script = script + " return true;" 
    script = script + " }</script>" 


    Dim b As New TextBox() 
    b.ID = "btnSomeButton" 
    b.TextMode = TextBoxMode.MultiLine 
    Mypanel.Controls.Add(b) 
    b.Attributes.Add("onkeyup", "return CheckLength('" & b.ClientID & "');") 

    Page.ClientScript.RegisterStartupScript(Page.GetType(), "key", script, False) 
3
<asp:TextBox TextMode="MultiLine" runat="server" ID="txtPurpose" Columns="50" Rows="2" onkeypress="return isokmaxlength(event,this,255);" ClientIDMode="static"></asp:TextBox> 

जावास्क्रिप्ट:

function isokmaxlength(e,val,maxlengt) { 
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode 

    if (!(charCode == 44 || charCode == 46 || charCode == 0 || charCode == 8 || (val.value.length < maxlengt))) { 
     return false; 
    } 
} 

आप कॉपी और पेस्ट के बारे में सोचना 210 यहाँ एक क्रॉस ब्राउज़र समाधान है। यह थोड़ा मुश्किल है, मैं बस इसे Jquery के साथ अक्षम कर देता हूं। लेकिन आप अधिक जटिल सत्यापन करने के लिए अपना स्वयं का कार्य बना सकते हैं। लेकिन मेरे मामले में, कॉपी और पेस्ट की अनुमति नहीं है। // stackoverflow:

jQuery(function ($) { 

    $("#txtPurpose").bind({ 
     paste: function (e) { 
      e.preventDefault(); 
     } 
    }); 

}); 
संबंधित मुद्दे