Jump to content


Photo

Máscara


  • Faça o login para participar
4 replies to this topic

#1 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 27/07/2005, 10:09

Bom,

Eu estou querendo fazer uma máscara de entrada tipo a do Banco do Brasil, não sei se alguém aqui já a viu.

Enfim, o valor inicial da caixa é "__/__/____" e ao receber foco, o foco já cai pra depois do último traço, e ao o cara começar a digitar a data vem sendo formatada de trás pra frente, ou seja se ele digitou 26022, fica assim "__/_2/6022".. Ou seja, ela vem substituindo os ultimos _ pelos valores digitados.

Bom, a primeira pergunta é:
Ninguém nunca viu um script desse?
Ps: Já vi alguns na seção Tutoriais mas esses apenas formatavam a data, e não faziam como eu quero.

Como posso fazer, pra o foco começar la do último caracter e vir substituindo os _ pelos valores digitados?

Como testar se o valor da tecla 'teclada' é letra ou número?
Eduardo Batista

#2 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 27/07/2005, 10:19

Bom, testar se é número é bico:

http://www.mredkj.co...s/validate.html

Digitar, aparentemente do final, é com direction="rtl".

Agora o efeito de máscara, só dá pra ver nas páginas internas ou tem alguma que nós possamos ver?
Klaus Paiva
Conheça também: Taperás

#3 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 27/07/2005, 10:56

Bom, não. Pois é um miniaplicativo Java, apesar de rodar no Browser. Mas pra ter-se uma idéia, creio eu que é só baixar aquele programa pra rodar direto da máquina do cliente.

Mas outras dúvidas:

. Como que eu faço também, pra quando a caixa receber o foco, ela ficar toda selecionada? Tipo um Ctrl A;

.Como eu testo se o carater em determinada posição é uma barra ("/") por exemplo? --> if(campo.caracter[i]=="/"){ <-- ???
Eduardo Batista

#4 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 27/07/2005, 11:01

OK, mas em qual página eu posso ver ele?

Respostas:

1- document.getElementById("IDdaCaixa").select();

2- campo.charAt (i) == "/"
Klaus Paiva
Conheça também: Taperás

#5 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 27/07/2005, 12:11

Pra poder ter acesso a esta página você precisa ter conta lá, fazer um cadastro de BB empresa lá e tal, baixar o programa e rodar na máquina, complicado né? se quiseres eu tiro umas shots dela aqui e posto.

A idéia é quase isso:

<script language="JavaScript" type="text/javascript">
<!--

function BlockStr(y,Campo)
{
	var key;
	var keychar;
	var reg;
	
	if(window.event) {
  key = y.keyCode; 
	}
	else if(y.which) {
  key = y.which; 
	}
  
	keychar = String.fromCharCode(key);
	reg = /\d/;
  
	if (reg.test(keychar)){
  var str = Campo.value;
  str = str.replace(" ",keychar);
  Campo.value = str;
	}
}

//-->
</script>

</head>

<body onLoad="form.data.focus();">
<form name="form">
<input type="text" name="data" id="data" value="  /  /    " onFocus="this.select();" onKeyPress="BlockStr(event,this);" maxlength="10" style="direction:rtl;"/>
</form>

Mas se você rodar aí vai ver que falta bastante coisa.. Rs.

Bom, ao ir deletando, eu queria que, ele fosse deletando os caracteres do input mas já fosse jogando a máscara novamente, por exemplo:

Temos: "27/07/2005"
Deletando: "27/0 / "
...
Deletando: "2 / / "

E por aí vai, sempre mantendo a máscara.

Outra coisa, setei lá o direction rtl e tudo mais, mas eu digito o primeiro caracter, o cursor volta la pro inicio do input ao invéz de se manter no fim, porém se insere um caracter o caracter fica lá no fim, mas com o cursor no inicio do input..

Cursor --> |

1. | / / 2
2. | / / 26
3. | /26/0220

Era pra ficar:

1. / / 2|
2. / / 26|
3. /26/0220|

Me dá umas idéias aí..
Eduardo Batista




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq