jQuery验证只能工作一次
当我尝试第二次验证表单时,jQuery验证不起作用。即使我点击任何文本框,我也会收到以下错误消息。jQuery验证只能工作一次
无法获取的财产“设置”值:对象是从哪儿部分观点被称为null或undefined
<form id="myForm" action="">
<input type="text" id="input1" name="input1" />
<input type="text" id="input2" name="input2" />
<button id="submit" name="submit">
</button>
</form>
<script type="text/javascript">
$('#myForm').validate({
rules: {
input1: "required",
input2: "required",
agree: "required"
},
submitHandler: function (form) {
MyFunction(); // i somehow believe the problem could be here, i have added the code below
}
});
function MyFunction() {
var firstname = $('#input1').val();
var lastname = $('#input2').val();
$.ajax({
type: "POST",
url: '@Url.Action("AddCustomer", "MyController")',
data: "{'FirstName': '" + firstname + "','LastName': '" + lastname + "'}",
dataType: 'text',
success: function (msg) {
$('#myDiv').html(msg);
},
error: function (result) {
alert("Error");
}
});
}
</script>
主视图。
<div id="parentDiv">
@Html.Action("ActionName", "ControllerName") //the action calls the Partial View
</div>
该功能正常工作。但是,有什么我需要添加,使验证第二次工作。
form
很简单,有一些文本框和一个提交按钮。 form
是在部分视图内,如果这会有所作为。
让我知道是否需要添加HTML标记。虽然我认为这与AJAX
帖子有关。
由于您没有在ajax提交后重新加载页面,请尝试使用插件提供的resetForm
方法。虽然,我希望这可以反复工作,而不需要进行表单重置。错误信息对于您迄今向我们显示的内容也没有任何意义。
http://jqueryvalidation.org/Validator.resetForm/
试试这个某处像你ajax
success
函数结束...
$('#myForm').validate().resetForm();
编辑:
使用你的代码,我不能重现您描述的问题:
我必须尝试一下,在你提供的链接中没有太多给出。你能解释一下它的作用吗? – user2322507 2014-09-18 19:00:47
@ user2322507,它会重置验证器对象,就好像该页面是新加载的一样......删除所有错误消息等。但是,它不会消除您可能已经在字段中输入的任何值。 – Sparky 2014-09-18 19:02:54
这听起来不错,我只能今天晚些时候尝试。 – user2322507 2014-09-18 19:09:27
只有让文本框为空时才会出现此错误?这种验证在你的数字化过程中是实时的吗? – 2014-09-18 18:25:00
验证第一次按预期工作,但是一旦我点击提交按钮并通过ajax调用添加数据,然后即使我点击任何文本框,我也会收到此错误。 – user2322507 2014-09-18 18:43:53
是的,请显示HTML标记。您总是希望显示足够的代码来重现问题。 – Sparky 2014-09-18 18:53:47