domingo, 10 de fevereiro de 2008

Autotab simples com JavaScript

Alguns campos como CEP, número de telefone, CPF e CNPJ, possuem um limite máximo de caracteres. Com base nisso, pode-se implementar uma função em JavaScript que salte automaticamente os campos de um formulário a medida que eles forem sendo preenchidos.

Isto é comumente chamado de autotab (auto-tab, auto tab, auto tabulação) e é implementado em JavaScript.

Abaixo a função responsável pela auto-tabulação.

function autotab(elemento)
{
if (elemento.value.length < elemento.getAttribute("maxlength")) return;
var formulario = elemento.form;
var els = formulario.elements;
var x, autotab;
for (var i = 0, len = els.length; i < len; i++)
{
x = els[i];
if (elemento == x && (autotab = els[i+1]))
{
if (autotab.focus) autotab.focus();
}
}
}
A partir desta função em JavaScript, define-se o evento no campo desejado, como segue:
<input onKeyUp="autotab(this);" name="campo" type="text" value="" maxlength="5" />

É necessário que seja definido no elemento o valor maxlength, que será responsável por verificar a quantidade de caracteres digitados e avançar para o próximo elemento.

1 comentários:

Eduardo Oliveira disse...

Olá Anderson

Estava procurando por uma rotina de auto-tab mas infelizmente essa não me servirá.

Já tentou mover o cursor com a seta pra esquerda quando o tamanho atingiu o máximo e você precisou voltar para editar o valor novamente? Pois é, o danado pula pro próximo :p