Pessoal, recentemente encontrei um problema em uma validação de textbox cujo o tipo eram multilines.
O que acontece é que o atributo MaxLeght do próprio asp.net não se aplica quando o textbox é do tipo multiline.
Então tive que fazer na raça mesmo.
Veja como eu fiz :
function checkTextAreaMaxLength(textBox,e, length)
{
var mLen = textBox["MaxLength"];
if(null==mLen)
mLen=length;
var maxLength = parseInt(mLen);
if(!checkSpecialKeys(e))
{
if(textBox.value.length > maxLength-1)
{
if(window.event)//IE
e.returnValue = false;
else//Firefox
e.preventDefault();
}
}
}
function checkSpecialKeys(e)
{
if(e.keyCode !=8 && e.keyCode!=46 && e.keyCode!=37 && e.keyCode!=38 && e.keyCode!=39 && e.keyCode!=40)
return false;
else
return true;
}
Depois apenas adicionei no controle :
<asp:TextBox Rows="5" Columns="80" ID="txtExemplo" MaxLength='1999' onkeyDown="checkTextAreaMaxLength(this,event,'1999');" TextMode="multiLine" runat="server"> </asp:TextBox>
No evento de OnkeyDown eu faço ele passar pela função, e assim verifica se o textbox possui mais que os caracteres que eu passei ou não.
Pessoal, então é isto!
Um abraço! 🙂
