Colocando MaxLenght em Textbox Multilines – JavaScript / C#

0

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! 🙂

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com