2011-08-09 14 views
11

Tengo un formulario que se envía con data-remote => true.Impedir el envío de formularios con jquery ujs si el campo está vacío

El formulario tiene un campo, un área de texto. Quiero evitar el envío del formulario si la longitud de la área de texto es 0 y solo permitir el envío de un formulario si la longitud es GT 1.

¿Cómo puedo vincularme a la forma de un rails 3, jquery ujs amigable? He intentado lo siguiente, pero eso no impidió que los envíos de formularios:

$('#new_feedback').bind('ajax:before', function() { 
     e.preventDefault(); 
}); 

Gracias

+4

No sé mucho acerca de lo que quiere hacer, pero parece que su función anónima le falta un parámetro 'e':' $ ('# new_feedback') se unen (. 'Ajax: antes' , función (e) { e.preventDefault(); }); ' – Johnny5

Respuesta

7

Puede unirse directamente a la propia forma. De esta forma, puede verificar el campo que desea, así como cualquier otro campo que desee verificar cuando se envíe el formulario. return false es lo que cancela el envío del formulario.

$('#myform').submit(function() 
{ 
    if($('#fieldtocheck').val().length < 1) 
    { 
     return false; 
    } 
}); 
+0

@downvoter ¿Le importaría comentar? Me doy cuenta de que esta respuesta tiene casi 2 años y que las partes internas de jQuery han cambiado ligeramente, pero esta sigue siendo una respuesta válida. – Kyle

+0

Parece que funciona bien en los rieles 4.x. Gracias. – dps

Cuestiones relacionadas