none
limitar quantidade de caracters em uma textarea RRS feed

  • Pergunta

  •  

    Galera estou tentano limitar a quantidade de caracters de uma textarea da minha página em ASP junto com uma função em javascript

     

    o código que estou usando é esse:

     

    Code Snippet

     

    <HEAD>

     

     <SCRIPT LANGUAGE="JavaScript">
     <!--
      function textCounter(field, countfield, maxlimit) {
         If (field.value.length > maxlimit)
          field.value = field.value.substring(0, maxlimit);
         Else
             countfield.value = maxlimit - field.value.length;
      }
     // -->
     </script>

     

    </HEAD>

     

    <BODY>

       <FORM name="FormTeste" METHOD="post" style="TOP: 0px;">

    <tr> 
      <td> 
            <textarea name="NomeTextArea" wrap=physical cols=28 rows=4 style="face=verdana; font-size:11; color=black"onKeyDown="textCounter(this.form.NomeTextArea, this.form.remLen, 300);" onKeyUp="textCounter(this.form.NomeTextArea, this.form.remLen, 300);"><%=VariavelAsp%></textarea

     

     faltam &nbsp;<input readonly type=text name=remLen size=3 maxlength=3 value="300"></font>
      </td>

    </tr>

       </FORM>

    </BODY>

     

     

     

    Ele da erro de script na página

     

    Erro: objeto esperado

    Código: 0

     

    alguem sabe oq tem de errado ou oq pode ser o problema ?

     

    se souberem alguma outra maneira tb agradeço

     

     

    Desde já, valew galera

     

    terça-feira, 9 de setembro de 2008 12:56

Respostas

  • Rodrigo,

     

    A palavra chave "this" faz a referencia ao objeto que voce esta vinculando, ou seja, quando voce usa "this.form.TextArea" ele tenta encontrar atributos para o objeto textarea, entao creio que voce deva usar assim.

     

    onKeyDown ="textCounter(this, document.form.remLen, 300);

    onKeyUp="textCounter(this, document.form.remLen, 300);

     

    Como pode ver o this já refencia o próprio objeto.

     

    Faz um teste.

     

    Abraço

     

    Estevam

    terça-feira, 9 de setembro de 2008 13:20

Todas as Respostas

  • Code Snippet

     <SCRIPT LANGUAGE="JavaScript">
     <!--
    function CountCharBox(obj,objCount,Limit){
        if(obj){
           
            if (obj.value.length >= (Limit)){;
                obj.value = obj.value.substring(0,(Limit));
                return false;
            }else{
                objCount.value = obj.value.length + 1;
                return true;
            };
           
        }
    }
     // -->
     </script>


    </HEAD>

    <BODY>

       <FORM name="FormTeste" METHOD="post" style="TOP: 0px;">
    <tr>
      <td>
            <textarea name="NomeTextArea" wrap=physical cols=28 rows=4 style="face=verdana; font-size:11; color=black" onKeyDown="return CountCharBox(this.form.NomeTextArea, this.form.remLen, 10);return false;"></textarea>
     <input readonly type=text name=remLen size=3 maxlength=3 value="0"></font>
      </td>

    </tr>

       </FORM>

    </BODY>

     

     


     

    Ve se isso resolve seu problema!

    terça-feira, 9 de setembro de 2008 13:12
  • Rodrigo,

     

    A palavra chave "this" faz a referencia ao objeto que voce esta vinculando, ou seja, quando voce usa "this.form.TextArea" ele tenta encontrar atributos para o objeto textarea, entao creio que voce deva usar assim.

     

    onKeyDown ="textCounter(this, document.form.remLen, 300);

    onKeyUp="textCounter(this, document.form.remLen, 300);

     

    Como pode ver o this já refencia o próprio objeto.

     

    Faz um teste.

     

    Abraço

     

    Estevam

    terça-feira, 9 de setembro de 2008 13:20
  •  Rafael Boschini wrote:

    Code Snippet

     <SCRIPT LANGUAGE="JavaScript">
     <!--
    function CountCharBox(obj,objCount,Limit){
        if(obj){
           
            if (obj.value.length >= (Limit)){;
                obj.value = obj.value.substring(0,(Limit));
                return false;
            }else{
                objCount.value = obj.value.length + 1;
                return true;
            };
           
        }
    }
     // -->
     </script>


    </HEAD>

    <BODY>

       <FORM name="FormTeste" METHOD="post" style="TOP: 0px;">
    <tr>
      <td>
            <textarea name="NomeTextArea" wrap=physical cols=28 rows=4 style="face=verdana; font-size:11; color=black" onKeyDown="return CountCharBox(this.form.NomeTextArea, this.form.remLen, 10);return false;"></textarea>
     <input readonly type=text name=remLen size=3 maxlength=3 value="0"></font>
      </td>

    </tr>

       </FORM>

    </BODY>

     

     


     

    Ve se isso resolve seu problema!

     

     

    PERFEITO CARA

     

    só mudei a parte

     

    obj.value.length + 1;

     

    para

     

    300 - obj.value.length;

     

    assim ele vai decrementando o valor da contagem do campo

    ficou otimo aki

     

    valew mesmo cara, mandou muito bem !!!

    terça-feira, 9 de setembro de 2008 13:48