2012-01-10 12 views
5

Necesito enviar el contenido de un formulario cuando presiono la tecla Enter, pero solo si el formulario no tiene ningún mensaje de error. He cogido la siguiente función:Formulario enviar en claveCódigo == "enter" (13)

$(targetFormID).submit(function (e) { 
    var mess = error_m(targetDiv); 
    if (e.keyCode == 13 && mess.length > 0) { 
     e.preventDefault(); 
     e.stopPropagation(); 
    } 
    if (mess.length == 0 && e.keyCode == 13) $(targetFormID).submit(); 
}); 

En esta función la variable desastre está recibiendo el mensaje de error devuelto por la función error_m, el resto es simple condtion de código, pero no funciona.

necesitar algo de ayuda con esto !!

+3

"no funciona">. < –

+0

muéstranos la función error_m –

Respuesta

7

El envío del formulario cuando se presiona Introducir es el comportamiento predeterminado del navegador. No te metas con eso. Simplemente valide el formulario en el evento submit.

$(targetFormID).submit(function (e) { 
    var mess = error_m(targetDiv); 
    if (mess.length > 0) { 
     e.preventDefault(); 
    } 
}); 

Otro problema posible: ¿qué es targetFormID? Si en realidad es una cadena que contiene un ID de elemento, que necesita

$("#" + targetFormID).submit(/* Same function as above */); 

si se trata de una referencia al elemento de formulario y luego $(targetFormID) está bien, pero la variable se denomina erróneamente.

+0

Si tienes varios formularios en la página, es posible que tengas que implementar una solución, especialmente si el foco a menudo no está en uno de los elementos del formulario de la forma "predeterminada" (bueno, eso es lo que recuerdo de tener que hacer algo como esto hace más de 4 años). – JayC

Cuestiones relacionadas