Pergunta

Eu tenho três caixas de entrada para a entrada de um número de telefone em uma página web:

 XXX XXX XXXX

Eu preciso JavaScript que move o usuário entre as caixas enquanto você digita. Após o terceiro personagem, ele se move-lo para a segunda caixa, etc ...

No passado, eu tive problemas com o retrocesso. Quando eu cliquei backspace a partir da segunda caixa, ele me coloca no primeiro, mas depois me atira de volta para o segundo.

Qual é a melhor maneira de fazer isso?

Foi útil?

Solução

Você deve usar jQuery AutoTab

Exemplo código como este

 <div><strong>Phone Number:</strong></div>
 <input type="text" name="area_code" id="area_code" maxlength="3" size="3" /> -
 <input type="text" name="number1" id="number1" maxlength="3" size="3" /> -
 <input type="text" name="number2" id="number2" maxlength="4" size="5" />


 <script type="text/javascript">
 $(document).ready(function() {
 $('#area_code').autotab({ target: 'number1', format: 'numeric' });
 $('#number1').autotab({ target: 'number2', format: 'numeric', previous: 'area_code'     });
 $('#number2').autotab({ previous: 'number1', format: 'numeric' });
});
</script>

Outras dicas

Pessoalmente, eu tinha acabado de aceitar quase qualquer e se preocupar com o lado do servidor que formatação re-. Eu tive que usar tantos formatadores de telefone ruim javascript que eu não sou um grande fã.

Eu sugiro ir com esta solução one-box em vez de três. Ela alivia muitas dores de cabeça e casos de ponta de saltar entre as caixas, e ter a primeira caixa fazer uma .select(), e, em seguida, o usuário pressiona exclusão, e limpa a sua entrada de distância. Nojento.

http://javascript.internet.com/forms/format-phone -number.html

Toda a formatação automática que você poderia querer. Claro, este é o padrão norte-americano, e você teria que modificar isso para RestOfTheWorld.

Eu usaria um ouvinte chave para verificar se há digitação quando o primeiro campo tem foco, contar o número de caracteres já digitou, e se caracteres suficientes foram digitados, mover o foco para o segundo campo, e assim por diante.

Espero que isso ajude,

Yuval = 8 -)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top