2013-01-14 124 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); 
       } 
      }); 
     } 
    }); 

});