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

Veja

download

  1. Maxlength no Textarea, é possível?
  2. Javascript para principiantes ou esquecidinhos. Aula 7 – Validando um formulário
  3. Validação de formularios com jQuery
  4. Trabalhando com querystring e Javascript
  5. Contagem regressiva em Javascript



3 Comentários »

  1. Comentário por Helton Ritter — 07/05/2009 @ 7:59 pm

    obrigado, usei o script adaptando um pouquinho. Valeu ter postado.

  2. Comentário por Gilson Filho — 14/07/2009 @ 4:25 pm

    Muito bom seu script, parabens!!!!

  3. 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

Rss dos comentários TrackBack URL

Deixe um comentário