2011-05-11 44 views
6

我在我的jQuery Mobile站點上有一個表單,我想要驗證,如果驗證未通過,則停止提交。jQuery Mobile在表單提交中'return false'

但是,'return false'並不會阻止表單被提交,因爲jQuery Mobile通過Ajax提交表單。我怎樣才能停止表單提交?

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

上面的代碼會觸發警報,但不會停止提交表單。如果我在表單標籤上使用data-ajax =「false」,它會正常工作,但如果可能的話,我寧願使用Ajax提交。

回答

7

使用data-ajax="false"和綁定,只有當驗證通過運行在您自己的Ajax表單提交代碼:

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

    return false; 
}); 
+0

這很有效,謝謝 – Matthew 2011-05-11 18:29:09

0

請注意,如果你可以用$(「#形式」)提交(),而不是活的()那麼你的代碼將按預期工作,而不必提供你自己的ajax表單提交代碼。

1

我同意bmaland並有同樣的問題。 這裏是什麼對我來說很好:

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