MaxLength not working in ASP.NET textbox multiLine

Great code I found for maxlength issue with .NET textboxes. .NET textboxes, if TextMode is set to MutilLine, the maxlength property just doesn't work, sux. So after playing around with different soloutions. I found this on, thanks to a guy named "Leo." So a big thanks to him!

Add this function in JavaScript on your page, I stuck it my "functions.js" file I include on the page anyway.

function checkMaxLen(txt,maxLen) {
try{
if(txt.value.length > (maxLen-1)) {
var cont = txt.value;
txt.value = cont.substring(0,(maxLen -1));
return false;
};
}catch(e){
}
}

Then on the textbox use something like this:

<asp:TextBox runat="server" ID="txtComments" CssClass="comment_textbox" Height="75px" TextMode="MultiLine" onkeyup="return checkMaxLen(this,151)"></asp:TextBox>


Notice the function passes the textbox (this) and the maxlength you want, in this case 150, notice I have 151, the function will limit the maxlength minus one... So if you want to limit the textbox with mutiline set to 100, you enter 101, make sense?

5 comments:

Ayaz said...

Hello zubair,

Its a nice idea though but user can have javascript disabled on his browser, so using regex can be a much better option, try using ^[\s\S]{0,900}$ for not accepting more than 900 characters.

Regards,

Cloud Computing said...

Its working. Thank u so much.

Cloud Computing said...

Its working. Thank u so much.

Anonymous said...

You have to ask why Microsoft after 4 versions of .NET hasn't built this in to ASP.NET

David Radley said...

There's actually a 1 line code behind solution to this bug in the framework. You can simply set the 'maxlength' attribute in the back end as an attribute, which then gets rendered in the HTML and the browser recognises.

MaxLength code behind solution