2010-02-07 28 views
17

¿Hay alguna forma de crear un formulario NO actualizar o llamar nada cuando presiona la tecla "Entrar" en su teclado?Formulario HTML: cuando pulso enter, ¡refresca la página!

Muchas gracias !!!

me encontré con este código para prevenir Ingrese desde trabajar, pero no funciona en IE :(

$(document).ready(function() { 
    $(window).keydown(function(event){ 
    if(event.keyCode == 13) { 
     event.preventDefault(); 
     return false; 
    } 
    }); 
} 

Respuesta

32

Prueba esto:

$(function() { 
    $("form").submit(function() { return false; }); 
}); 
16

La desactivación del evento submit no es un buen idea. Ahora puede nunca envíe el formulario presionando el botón para el que está.

Rather hook on the keypress evento:

<form onkeypress="return event.keyCode != 13"> 

o en sabor jQuery:

$('form').keypress(function(event) { 
    return event.keyCode != 13; 
}); 

13 es el código de tecla de Intro clave. Esto funciona en todos los navegadores desde IE6 hasta con todos los navegadores actuales. Solo debe tener en cuenta las áreas de texto. A continuación, puede considerar este constructo en su lugar:

$(':input:not(textarea)').keypress(function(event) { 
    return event.keyCode != 13; 
}); 
10

add onEnviar propiedad en la etiqueta del formulario.

<form onSubmit="return false;"> 
+0

la solución más simple y mejor, la OMI –

2

Puede evitar el envío de formularios con la tecla 'enter' de forma nativa si está utilizando AngularJS.

De acuerdo con la especificación HTML y AngularJS, es necesario comprobar esta lista:

  1. formulario debe tener NOaction=... atributo (AngularJS maneja automáticamente)
  2. formulario debe tener NObutton con type="submit" atributo

Por lo tanto, si no tiene ningún atributo de acción y botón de enviar, th es que su formulario no debe enviarse presionando la tecla enter.

Además, multi-navegador keyCode es la siguiente:

var code = (e.keyCode ? e.keyCode : e.which); 
+0

Sé que esto no era una pregunta AngularJS pero esto funcionaba un lujo para mí (usando AngularJS). –

Cuestiones relacionadas