none
Problema na formatação textbox RRS feed

  • Pergunta

  • Galera estou com um pequeno problema aqui e bem chato também..

    Tenho um formulário de cadastro onde contém imformações basicas como CPF, DT Nascimento e etc ...

    A formatação dos campos como CPF e Data ocorre corretamente, mas ao acionar um evento para gravar esse cadastro no banco quando ocorre algum erro como falta de alguma informação ou usuário já cadastrado essa formatação do CPF, Datas e etc é perdido.

    segue código:

      <table class="tabela">
            <tr >
                <td class="style1"  >
                    CPF
                </td>
                <td  >
                    <asp:TextBox ID="eacNRCPFCRC"  onkeyup="MascaraCPF(CEWFR_RNDR1$eacNRCPFCRC);autotab(this);"
      runat="server" TabIndex="1" MaxLength="14" Width="103px" Height="23px" ></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style1"  >
                    Nome
                </td>
                <td>
                    <asp:TextBox ID="eacNMAUXILIAR" runat="server" width="250px"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style1"   >
                    Email
                </td>
                <td >
                    <asp:TextBox ID="eacDSEMAIL" runat="server" width="250px"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style1"  >
                    Dt Nascimento
                </td>
                <td >
                    <asp:TextBox ID="eacDTNASCMTO" OnKeyPress="MascaraData(CEWFR_RNDR1$eacDTNASCMTO);"  runat="server" 
                        MaxLength="10" Width="76px" onKeyUp="autotab(this);" ></asp:TextBox>
                </td>
            </tr>
    </table>

    JS:

       function formataCampo(campo, Mascara, evento) {
            var boleanoMascara;
    
            var Digitato = evento.keyCode;
            exp = /\-|\.|\/|\(|\)| /g
            campoSoNumeros = campo.value.toString().replace(exp, "");
    
            var posicaoCampo = 0;
            var NovoValorCampo = "";
            var TamanhoMascara = campoSoNumeros.length; ;
    
            if (Digitato != 8) { // backspace  
                for (i = 0; i <= TamanhoMascara; i++) {
                    boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
                                                                    || (Mascara.charAt(i) == "/"))
                    boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
                                                                    || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
                    if (boleanoMascara) {
                        NovoValorCampo += Mascara.charAt(i);
                        TamanhoMascara++;
                    } else {
                        NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
                        posicaoCampo++;
                    }
                }
                campo.value = NovoValorCampo;
                return true;
            } else {
                return true;
            }
        }
    
        //adiciona mascara de data 
        function MascaraData(data) {
            if (mascaraInteiro(data) == false) {
                event.returnValue = false;
            }
            return formataCampo(data, '00/00/0000', event);
        }
    
    
        //adiciona mascara ao CPF 
        function MascaraCPF(cpf) {
            if (mascaraInteiro(cpf) == false) {
                event.returnValue = false;
            }
            return formataCampo(cpf, '000.000.000-00', event);
        }  

    COMO POSSO RESOLVER ESSE PROBLEMA ??

    quarta-feira, 27 de junho de 2012 17:37

Respostas

  • Galera o erro estava no meu .cs quando retornava o erro ele tirava a formatação e depois jogava para o textbox ...

    mas Valeu ae !!!

    • Marcado como Resposta Raul Guilherme quinta-feira, 28 de junho de 2012 19:23
    quinta-feira, 28 de junho de 2012 19:23

Todas as Respostas

  • Raul o que é esse onKeyUp="autotab(this);"  pode ser ele pq se dá erro a página é renderizada e ai essa função script pode estar auformatando e com isso perdendo a informação que estava lá.

    Junior

    quarta-feira, 27 de junho de 2012 17:44
  • Amigo,

    Me desculpe ser rude...mas troca esse lixo por algo que realmente funcione, me desculpe!
    Aqui onde eu trabalho o pessoal tinha um script parecido com o seu, mas dava muito problema então estou mudando tudo para JQUERY + MEIOMASK. A biblioteca é simples e muito funcional e tem trocentas mascaras prontas e para utilizar só colocar "alt="cpf"" ou campo.

    Link da biblioteca
    http://www.meiocodigo.com/projects/meiomask/ 

    Código de exemplo:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script language="javascript" type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
    <script language="javascript" type="text/javascript" src="http://github.com/fabiomcosta/jquery-meiomask/raw/08b92c411a60ace9131de697179fda433178b8d9/jquery.meio.mask.min.js"></script>
    <script>
    $(document).ready(function(e) {
    	$('input:text').setMask();
    });
    </script>
    </head>
    
    <body>
    <form>
      CPF
      <input type="text" name="teste" size="20" alt="cpf" />
      <br />
      CNPJ
      <input type="text" name="teste" size="20" alt="cnpj" />
      <br />
      DATA
      <input type="text" name="teste" size="20" alt="date" />
      <br />
      DECIMAL
      <input type="text" name="teste" size="20" alt="decimal" />
      <br />
    </form>
    </body>
    </html>

    Boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    • Sugerido como Resposta Cleber H. Neves quinta-feira, 28 de junho de 2012 10:51
    quarta-feira, 27 de junho de 2012 17:46
  • Galera o erro estava no meu .cs quando retornava o erro ele tirava a formatação e depois jogava para o textbox ...

    mas Valeu ae !!!

    • Marcado como Resposta Raul Guilherme quinta-feira, 28 de junho de 2012 19:23
    quinta-feira, 28 de junho de 2012 19:23