我有一个表单,我提交到我的数据库,表单包括Jquery Validate插件和ajax提交。
我遇到的问题是,在我单击提交后,表单不清除,它更新到数据库等但我只是想在输入字段上清除表单和css突出显示,以便有人可以添加新记录。有什么帮助吗?
CODE:
$(document).ready(function () {
$.validator.addMethod("time", function (value, element) {
return this.optional(element) || /^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/i.test(value);
}, "Please enter a valid time.");
$("#newform").validate({
//validation
debug: false,
rules: {
Name: {
required: true,
minlength: 3,
},
Surname: {
required: true,
},
},
submitHandler: function (form) {
$.post('process.php', $("#newform").serialize(), function (data) {
$('#results').html(data);
$('#newform').reset();
});
}
});
});
HTML:
<form name="newform" id="newform" action="" method="POST">
<p>Name:</p>
<input type="text" id="pName" name="sName" /><br />
<p>Surname:</p>
<input type="date" id="pSName" name="pSName" /><br />
<input type="submit" name="submit" value="Submit">
</form>
<div id="results"><div>
答案 0 :(得分:2)
您可以使用以下代码清除表单:
$('#newform').reset();
要专注于特定的<input>
,您可以在reset()
电话后使用此功能:
$('input[name="sName"]').focus();
答案 1 :(得分:0)
尝试以下方法:
submitHandler: function (form) {
var jqxhr = $.post('process.php', $("#newform").serialize(), function (data) {
$('#results').html(data);
});
jqxhr.done(function() {
$('#newform')[0].reset();
});
}
答案 2 :(得分:-2)
$('#newform').reset();
上面的代码可以。但是阅读你的评论我发现你必须让ajax调用同步。因为如果它是异步的,您将在服务器端实际处理提交请求之前清除表单。这就是你在process.php
在ajax调用中,也在对象参数 -
中传递async{url:'xyz.com',async:false}