2013-01-14 156 views
-4

可能重複:
jQuery validation: some of the required field not filled but the form can still be submitted使用Ajax表單提交jQuery驗證衝突

我使用jQuery驗證(http://bassistance.de/jquery-plugins/jquery-plugin-validation/)爲表單驗證:

HTML:

<form id="formID" action="/processForm" method="post"> 
    ... 
    <input type="submit" value="Submit" /> 
</form> 

jQuery的:

$("#formID").validate({ 
    onkeyup:false, 
    rules: { 
    ... 
    }, 
    messages: { 
    ... 
    } 
}); 


// Submit the form by Ajax 
$(document).ready(function() { 
    $('.formID').ajaxForm({ 
    success: function(returnData) { 
     $('#content').html(returnData); 
    } 
    }); 
}); 

現在的形式似乎被驗證()函數來提交,而不是通過Ajax的功能。

我該如何使用Ajax功能?

+0

只是一個快速注:'$( 'formID ')給ajaxForm()'應該是'$(' #formID')給ajaxForm()'你的Ajax是演技與階級「的形式formID。 「 – andrux

回答

-1

試試這個JS:

$('#formID').on('submit',function(){ 

// call your function which send AJAX reuest 
// Or code of sending ajax reauest 

return false; 

}) 
1

現在的形式似乎是由validate()功能遞交,而不是由 Ajax的功能。我仍然如何使用Ajax功能?

這是因爲validate()插件已經有一個submitHandler:內置。以下是如何正確使用它,並避免在同一事件中執行多個功能之間潛在的衝突。

$(document).ready(function() { 

    $("#formID").validate({ 
     onkeyup:false, 
     rules: { 
     ... 
     }, 
     messages: { 
     ... 
     }, 
     submitHandler: function(form) { 
      form.ajaxForm({ 
       success: function(returnData) { 
        $('#content').html(returnData); 
       } 
      }); 
     } 
    }); 

});