<html> <head> <title>Máscaras para Formulários</title> <script language="JavaScript"> /*** * Descrição.: formata um campo do formulário de * acordo com a máscara informada... * Parâmetros: - objForm (o Objeto Form) * - strField (string contendo o nome * do textbox) * - sMask (mascara que define o * formato que o dado será apresentado, * usando o algarismo "9" para * definir números e o símbolo "!" para * qualquer caracter... * - evtKeyPress (evento) * Uso.......: <input type="textbox" * name="xxx"..... * onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);"> * Observação: As máscaras podem ser representadas como os exemplos abaixo: * CEP -> 99.999-999 * CPF -> 999.999.999-99 * CNPJ -> 99.999.999/9999-99 * Data -> 99/99/9999 * Tel Resid -> (99) 999-9999 * Tel Cel -> (99) 9999-9999 * Processo -> 99.999999999/999-99 * C/C -> 999999-! * E por aí vai... ***/ function txtBoxFormat(objForm, strField, 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; } sValue = objForm[strField].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( " ", "" ); 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) == "/")) 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++; } objForm[strField].value = sCod; if (nTecla != 8) { // backspace if (sMask.charAt(i-1) == "9") { // apenas números... return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9 else { // qualquer caracter... return true; } } else { return true; } } //Fim da Função Máscaras Gerais </script> </head> <body> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Formatação de várias Máscaras de Entradas para campos de Formulários</strong></font> <form name="Form"> <table border="0" cellspacing="2" cellpadding="2"> <tr> <td width="66"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cep </font></td> <td width="128"> <input type="text" name="str_cep" maxlength="10" size="10" onkeypress="return txtBoxFormat(document.Form, 'str_cep', '99.999-999', event);"> </td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cpf </font></td> <td> <input type="text" name="str_cpf" maxlength="14" size="14" onkeypress="return txtBoxFormat(document.Form, 'str_cpf', '999.999.999-99', event);"> </td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cnpj</font></td> <td><input type="text" name="str_cnpj" maxlength="18" size="18" onkeypress="return txtBoxFormat(document.Form, 'str_cnpj', '99.999.999/9999-99', event);"></td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Data</font></td> <td><input type="text" name="str_data" maxlength="10" size="10" onkeypress="return txtBoxFormat(document.Form, 'str_data', '99/99/9999', event);"></td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Tel Resid</font></td> <td><input type="text" name="str_tel2" maxlength="13" size="13" onkeypress="return txtBoxFormat(document.Form, 'str_tel2', '(99) 999-9999', event);"></td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Tel Cel </font></td> <td> <input type="text" name="str_tel" maxlength="14" size="14" onkeypress="return txtBoxFormat(document.Form, 'str_tel', '(99) 9999-9999', event);"> </td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Processo</font></td> <td><input type="text" name="str_proc" maxlength="20" size="20" onkeypress="return txtBoxFormat(document.Form, 'str_proc', '99.999999999/9999-99', event);"></td> </tr> <tr> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Conta </font></td> <td> <input type="text" name="str_cc" maxlength="6" size="10" onkeypress="return txtBoxFormat(document.Form, 'str_cc', '9999-!', event);"> </td> </tr> </table> </form> </body> </html>
Mascara De Entrada
#1
Posted 27/06/2003, 14:13
#2
Posted 27/06/2003, 15:27
asp é melhor naum é?!!!!
#3
Posted 28/06/2003, 01:04
#4
Posted 28/06/2003, 01:54
|
| ====================================
| Cavalo eu puxo no toco, burro eu puxo no morão.
| Gosto de whisky, mas a cerveja é minha paixão.
| Sou gamado na loira, mas da morena eu não largo não!
| ----------------------------------------------------------------
#5
Posted 28/06/2003, 19:50
a soh valew pela respostaDepende, eu nunca soube que ASP trabalhava com mascara de entrada... Isso é pra quando vc for preencher um campo ele se "auto-completar", e é uma forma de validar data, cpf, telefone...
naum sabia q html tinha ese recurso valew
muito util
#6
Posted 29/06/2003, 04:36
Porém naum gostei..
Naum dá pra apagar os caracteres que foram inseridos pelo script..
Acho que há outra maneira de fazer isso..
Fui..
chinello at gmail dot com
System > Athlon 64 3200+ Mobile | Kubuntu 7.04 Fesity Fawn AMD64 | Kernel 2.6.20-16
Coding @ KDE 3.5.7 | PHP 5.2.1 | Apache 2.2.3 | MySQL 5.0.38
#7
Posted 29/06/2003, 14:12
Acho que a idéia é exatamente essa: impor um formato pré-definido a quem preenche um formulário, para que as informações cheguem exatamente no formato que vc quer receber, inclusive facilitando o preenchimento e evitando erros de quem digita.Interessante..
Porém naum gostei..
Naum dá pra apagar os caracteres que foram inseridos pelo script..
Acho que há outra maneira de fazer isso..
Fui..
|
| ====================================
| Cavalo eu puxo no toco, burro eu puxo no morão.
| Gosto de whisky, mas a cerveja é minha paixão.
| Sou gamado na loira, mas da morena eu não largo não!
| ----------------------------------------------------------------
#8
Posted 29/06/2003, 20:08
Pega ele, e vai digitando o seu CPF por exemplo (que é grandinho), aí vc vai digitando, e vai aparecendo os pontinhos e talz.. Mas se vc acaba de digitar e depois vc vai conferir, e viu que errou um número, vc naum consegue ir apagando normalmente, quando vc chegar no primeiro caracter gerado pelo script, vc naum vai conseguir mais apagar..
Naum lembro se dá pra passar por cima com a setinha.. Mas caso naum dê, vc teria que ir com o mouse lá e clicar onde vc quer apagar..
Eu acho isso incômodo.. Pois eu uso o teclado pra quase tudo, aí eu tô bem tranquilo digitando as minhas info, e tenho que usar o mouse e talz.. Parece besteira, mas eu naum goto..
Fui..
chinello at gmail dot com
System > Athlon 64 3200+ Mobile | Kubuntu 7.04 Fesity Fawn AMD64 | Kernel 2.6.20-16
Coding @ KDE 3.5.7 | PHP 5.2.1 | Apache 2.2.3 | MySQL 5.0.38
#9
Posted 29/06/2003, 20:41
Mas eu tinha testado sim.. só não tinha reparado isso que vc reparou e realmente é um ponto negativo do script, testei de novo e sobre passar o mouse por cima do número e digitar de novo não adiantou não.. apagou tudo e fica apenas o que é digitado a partir de então..
Usando apenas o teclado a nova entrada vai pro final da sequência de números como vc bem disse. :ok:
|
| ====================================
| Cavalo eu puxo no toco, burro eu puxo no morão.
| Gosto de whisky, mas a cerveja é minha paixão.
| Sou gamado na loira, mas da morena eu não largo não!
| ----------------------------------------------------------------
#10
Posted 29/06/2003, 21:14
a unica deficiencia q tem.. eh q.. pra vc alterar o conteudo vc tem q ir apagando um a um, tipo com o Backspace....
se vc for com o mouse e digitar por cima vai fikar em branco
e se vc for com o ponteiro pelo teclado e apagar vai pro final... mas nada q atrapalhe
#11 lucas souza
Posted 02/07/2003, 00:58
FLW pru 6.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( " ", "" );
#12
Posted 03/07/2003, 00:56
Pra naum ter erro, pra realmente mudar o caracter.. ahuuauhauaMuito interessante mesmo. Mas tem uma coisa q eu não entendi. Por que é q tem q se repetir duas vezes a especificação de cada símbolo?
Sei lá véio.. Pra mim naum serve pra nada.. Acho que é rateação..
Fui..
chinello at gmail dot com
System > Athlon 64 3200+ Mobile | Kubuntu 7.04 Fesity Fawn AMD64 | Kernel 2.6.20-16
Coding @ KDE 3.5.7 | PHP 5.2.1 | Apache 2.2.3 | MySQL 5.0.38
#13
Posted 03/07/2003, 14:14
.
#14 lucas souza
Posted 04/07/2003, 01:09
Eu acho q serve pra alguma coisa sim, Chinello.Pra naum ter erro, pra realmente mudar o caracter.. ahuuauhauaMuito interessante mesmo. Mas tem uma coisa q eu não entendi. Por que é q tem q se repetir duas vezes a especificação de cada símbolo?
Sei lá véio.. Pra mim naum serve pra nada.. Acho que é rateação..
Fui..
Tenta deixar apenas uma especificação de cada símbolo. Aqui começou a dar erro. Mas eu não entendi por que?
FLW pru 6.
#15
Posted 28/08/2003, 21:50
e está sendo muito util aqui pra mim...
valew cristiano
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)