none
Problema na formatação textbox

    Question

  • 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 ??

    Wednesday, June 27, 2012 5:37 PM

Answers

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

    Thursday, June 28, 2012 7:23 PM

All replies

  • 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

    Wednesday, June 27, 2012 5:44 PM
  • 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"

    Wednesday, June 27, 2012 5:46 PM
  • 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 !!!

    Thursday, June 28, 2012 7:23 PM