Desabilitar o Enter em um form com Javascript
Recentemente, estive trabalhando em um sistema com cadastros, quando me deparei com um problema, o Enter.
Não podia Permitir que o usuário desse o action do form ao pressionar o enter, geralemente para mudar de campo.
Pesquisei na Internet, achei algumas opções, mas acabei criando a minha do jeito que eu realmente precisava. Cheguei ao script abaixo.
function arrumaEnter (field, event) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) {
var i;
for (i = 0; i < field.form.elements.length; i++)
if (field == field.form.elements[i])
break;
i = (i + 1) % field.form.elements.length;
field.form.elements[i].focus();
return false;
}
else
return true;
}
<input onkeypress="return arrumaEnter(this, event)" maxlength="60" name="emitente" type="text" />
Linha a linha
function arrumaEnter (field, event) { - Nome da funcção, que recebe o campo e o evento utilizado
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; – Recebe o evento utilizado
if (keyCode == 13) { – Se a tecla é o Enter
var i; - Cria a variável
for (i = 0; i < field.form.elements.length; i++) – Roda todos os camposdo form
if (field == field.form.elements[i]) - Se o campo utilizado é o atual
break; Para
i = (i + 1) % field.form.elements.length; – Adiciona 1 ao campo atual
field.form.elements[i].focus(); – Dá um foco no próximo campo
return false; – Retorna Falso, ou seja, não permite o submit
else – Caso contrário
return true; – Permite o Submit
onkeypress=“return arrumaEnter(this, event)” – Chama a função
- Maxlength no Textarea, é possível?
- Javascript para principiantes ou esquecidinhos. Aula 7 – Validando um formulário
- Validação de formularios com jQuery
- Trabalhando com querystring e Javascript
- Contagem regressiva em Javascript
3 Comentários »
Rss dos comentários TrackBack URL
Comentário por Helton Ritter — 07/05/2009 @ 7:59 pm
obrigado, usei o script adaptando um pouquinho. Valeu ter postado.
Comentário por Gilson Filho — 14/07/2009 @ 4:25 pm
Muito bom seu script, parabens!!!!
Comentário por Roger Mauricio — 06/11/2011 @ 7:52 am
Cara vlw, sei que o post é antigo, só que realmente foi uma mão na roda para mim, estava tentando de várias maneiras, porém não tinha pensando ainda em tratar o event no campo, invez de ficar quebrando a cabeça no formulário.
Thanks Bro