2011-05-11 18 views
6

Tengo un formulario en mi sitio jQuery Mobile que me gustaría validar y dejo de enviarlo si la validación no se aprueba.jQuery Mobile 'return false' en el envío del formulario

Sin embargo, 'return false' no impide que se envíe el formulario, porque jQuery Mobile está enviando el formulario a través de Ajax. ¿Cómo puedo detener el envío del formulario?

$("#form").live('submit', function(){ 
    alert('test'); 
    return false; 
}); 

El código anterior activa la alerta, pero no detiene el envío del formulario. Si uso data-ajax = "false" en la etiqueta del formulario, funciona correctamente, pero prefiero usar el envío de Ajax si es posible.

Respuesta

7

Uso data-ajax="false" y enlazar su propio código de envío del formulario ajax que sólo se ejecuta si la validación pasa:.

$("#form").live('submit', function() 
{ 
    if (formValidates) 
    { 
     $.post(...); 
    } 

    return false; 
}); 
+0

Eso funciona, gracias – Matthew

0

Tenga en cuenta que si se puede usar $ ("forma #") presente() en lugar de en vivo() entonces su código funcionará como se esperaba, sin tener que proporcionar su propio código de presentación de formulario ajax.

1

Estoy de acuerdo con bmaland y tuve el mismo problema. Esto es lo que funcionó bien para mí:

$(document).on("pagecreate","#Home",function(){ 
$("#myFormSearch").submit(function(){ 
     myRealSubmit(); 
     return false; 
    });      
}); 
Cuestiones relacionadas