我有一个简单的Jquery Validation调用Ajax,但在调用Ajax页面后我想重置表单。一切正常,但不会重新格式化。
我的JQuery和验证脚本:
var validator = $('#formOne').validate({
rules: {
fieldName: {
required: true,
minlength: 3
}
},
submitHandler: function(form) {
$(this).callAjax(form);
validator.resetForm();
return false; //avoid form submit
}
});
//Ajax call function
$.fn.callAjax= function(form){
var postData = $(form).serialize();
var formAction = $(form).attr('action')
$.ajax({
type: "POST",
url: formAction,
data: postData,
dataType: "html",
success: function(response){
$("#ShowNames").html(response);
}
});
}
我的表格:
<form name="formOne" id="formOne" method="post" action="ajax/insert_name.php?act=insert">
<input type="text" id="fieldName" name="fieldName">
<button type="submit" id="loading-btn" value="Submit" data-loading-text="Loading...">Avançar</button>
</form>
<div id="ShowNames"></div>
我尝试了很多方法,但我无法完成这项工作......
任何想法?
答案 0 :(得分:2)
答案 1 :(得分:0)
修改的
考虑到您使用jQuery Validation插件,Dox已提供better and more concise
个答案。
我不确定您使用$validator.resetForm();
的原因,因为我没有看到$validator
引用任何内容。话虽这么说,您应该清除 你的AJAX成功函数,或者在运行AJAX函数后检查某些条件是否为真。
您正在寻找的代码(如果在AJAX成功函数中使用)将如下所示:
//Ajax call function
$.fn.callAjax= function(form){
var postData = $(form).serialize();
var formAction = $(form).attr('action')
$.ajax({
type: "POST",
url: formAction,
data: postData,
dataType: "html",
success: function(response){
$("#ShowNames").html(response);
// If some condition is true
$(form)[0].reset();
}
});
}