当我第二次尝试验证表单时,jQuery验证功能不起作用。即使我点击任何文本框,我也会收到以下错误。
无法获取属性的值'设置':对象为null或未定义
<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
帖子有关。
答案 0 :(得分:1)
由于您在提交ajax后未重新加载页面,请尝试使用插件提供的resetForm
方法。虽然,我希望这可以重复工作,而无需重置表单。对于您迄今为止向我们展示的内容,错误消息也毫无意义。
http://jqueryvalidation.org/Validator.resetForm/
在ajax
success
函数结束时尝试此操作...
$('#myForm').validate().resetForm();
修改强>:
使用您的代码,我无法重现您描述的问题: