egalauber Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Peguei este script aquí mesmo no site porque preciso fazer algo bem parecido, só q não entendo nada de JavaScript.Será q alguém poderia me dar a explicação?Tentar me "ensinar" o q está acontecendo no script?!Agradeço de coração!<script language=javascript> //MÁSCARA DE VALORES function txtBoxFormat(objeto, sMask, evtKeyPress) { var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla; if(document.all) { // Internet Explorer nTecla = evtKeyPress.keyCode; } else if(document.layers) { // Nestcape nTecla = evtKeyPress.which; } else { nTecla = evtKeyPress.which; if (nTecla == 8) { return true; } } sValue = objeto.value; // Limpa todos os caracteres de formatação que // já estiverem no campo. sValue = sValue.toString().replace( "-", "" ); sValue = sValue.toString().replace( "-", "" ); sValue = sValue.toString().replace( ".", "" ); sValue = sValue.toString().replace( ".", "" ); sValue = sValue.toString().replace( "/", "" ); sValue = sValue.toString().replace( "/", "" ); sValue = sValue.toString().replace( ":", "" ); sValue = sValue.toString().replace( ":", "" ); sValue = sValue.toString().replace( "(", "" ); sValue = sValue.toString().replace( "(", "" ); sValue = sValue.toString().replace( ")", "" ); sValue = sValue.toString().replace( ")", "" ); sValue = sValue.toString().replace( " ", "" ); sValue = sValue.toString().replace( " ", "" ); fldLen = sValue.length; mskLen = sMask.length; i = 0; nCount = 0; sCod = ""; mskLen = fldLen; while (i <= mskLen) { bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":")) bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " ")) if (bolMask) { sCod += sMask.charAt(i); mskLen++; } else { sCod += sValue.charAt(nCount); nCount++; } i++; } objeto.value = sCod; if (nTecla != 8) { // backspace if (sMask.charAt(i-1) == "9") { // apenas números... return ((nTecla > 47) && (nTecla < 58)); } else { // qualquer caracter... return true; } } else { return true; } } </script> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Acho que seria melhor postar o código completo !De qualquer forma deu pra "entender" parte de seu scriptAparentemente ele pega um código, tira toda a formatação (remove pontos, vírgulas, parênteses, etc...), e verifica se o caractere digitado é um número Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 egalauber Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 tá í o código inteiro:<script language=javascript> //MÁSCARA DE VALORES function txtBoxFormat(objeto, sMask, evtKeyPress) { var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla; if(document.all) { // Internet Explorer nTecla = evtKeyPress.keyCode; } else if(document.layers) { // Nestcape nTecla = evtKeyPress.which; } else { nTecla = evtKeyPress.which; if (nTecla == 8) { return true; } } sValue = objeto.value; // Limpa todos os caracteres de formatação que // já estiverem no campo. sValue = sValue.toString().replace( "-", "" ); sValue = sValue.toString().replace( "-", "" ); sValue = sValue.toString().replace( ".", "" ); sValue = sValue.toString().replace( ".", "" ); sValue = sValue.toString().replace( "/", "" ); sValue = sValue.toString().replace( "/", "" ); sValue = sValue.toString().replace( ":", "" ); sValue = sValue.toString().replace( ":", "" ); sValue = sValue.toString().replace( "(", "" ); sValue = sValue.toString().replace( "(", "" ); sValue = sValue.toString().replace( ")", "" ); sValue = sValue.toString().replace( ")", "" ); sValue = sValue.toString().replace( " ", "" ); sValue = sValue.toString().replace( " ", "" ); fldLen = sValue.length; mskLen = sMask.length; i = 0; nCount = 0; sCod = ""; mskLen = fldLen; while (i <= mskLen) { bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":")) bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " ")) if (bolMask) { sCod += sMask.charAt(i); mskLen++; } else { sCod += sValue.charAt(nCount); nCount++; } i++; } objeto.value = sCod; if (nTecla != 8) { // backspace if (sMask.charAt(i-1) == "9") { // apenas números... return ((nTecla > 47) && (nTecla < 58)); } else { // qualquer caracter... return true; } } else { return true; } } </script> <table border="0"> <tr> <td>Data:</td> <td><input type="text" size="20" onkeypress="return txtBoxFormat(this, '99/99/9999', event);" maxlength="10"> XX/XX/XXXX</td> </tr> <tr> <td>RG:</td> <td><input type="text" size="20" onkeypress="return txtBoxFormat(this, '99.999.999-9', event);" maxlength="12"> XX.XXX.XXX-X</td> </tr> <tr> <td>Telefone:</td> <td><input type="text" size="20" onkeypress="return txtBoxFormat(this, '(99)9999-9999', event);" maxlength="13"> (XX)XXXX-XXXX</td> </tr> <tr> <td>Código:</td> <td><input type="text" size="20" onkeypress="return txtBoxFormat(this, '99-999', event);" maxlength="6"> XX-XXX</td> </tr> </table> mas eu precisava saber coisas do tipo: O q faz document.all e document.layers?? O q ele está fazendo em nTecla == 8?? essa parte eu não entendi nada: while (i <= mskLen) { bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":")) bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " ")) if (bolMask) { sCod += sMask.charAt(i); mskLen++; } else { sCod += sValue.charAt(nCount); nCount++; } i++; } essa também não entendi (o q são estes valores 47 e 58?): if (nTecla != 8) { // backspace if (sMask.charAt(i-1) == "9") { // apenas números... return ((nTecla > 47) && (nTecla < 58)); } else { // qualquer caracter... return true; } } else { return true; } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Dezembro 11, 2008 Denunciar Share Postado Dezembro 11, 2008 O script faz algo parecido com uma "máscara", onde só se permite que o usuário digite caracteres em determinado formadoExemplo: DD/MM/AAAA ou (DD)XXXX-XXXX Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
egalauber
Peguei este script aquí mesmo no site porque preciso fazer algo bem parecido, só q não entendo nada de JavaScript.
Será q alguém poderia me dar a explicação?
Tentar me "ensinar" o q está acontecendo no script?!
Agradeço de coração!
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.