我正在劫持现有表单并发布到服务器。jQuery validate 完成大部分验证,但如果服务器上的验证失败,我们会将错误以 JSON 形式返回给客户端。
下面是执行此操作的代码:
<script type="text/javascript">
$(function () {
$("form").submit(function (e) {
var $form = $(this);
var validator = $form.data("validator");
if (!validator || !$form.valid())
return;
e.preventDefault();
$.ajax({
url: "@Url.Action("index")",
type: "POST",
data: $form.serialize(),
statusCode: {
400: function(xhr, status, err) {
var errors = $.parseJSON(err);
validator.showErrors(errors);
}
},
success: function() {
// clear errors
// validator.resetForm();
// just reload the page for now
location.reload(true);
}
});
});
});
</script>
问题是如果 POST 成功,我似乎无法清除验证错误。我试过打电话validator.resetForm()
,但这没有区别,showError()
调用添加的错误消息仍然显示。
注意我也在使用 jQuery.validate.unobtrusive 插件。