技术:
Asp.net MVC
的jQuery /验证
设定:
我有一个视图,通过ajax
加载,包含创建表单和列表视图。
创建表单通过ajax
提交模型。我有一个js / jQuery函数,可以在提交时执行此操作:
$("#content").on("submit", ".create-form", function (e) {
e.preventDefault();
$.validator.unobtrusive.parse($(this));
$(this).validate();
if ($(this).valid()) {
//alert($(this).serialize());
var action = $(this).attr("action");
$.ajax({
type:"POST",
url: action,
data: $(this).serialize(),
success: function (response) {
},
error: function () {
alert("something went wrong");
}
})
}
})
我的模型有几个典型的验证属性和一个远程验证属性:
[Required]
[Remote("AssetTagExists","Inventory")]
[Display(Name = "Asset Tag")]
public int AssetId { get; set; }
问题:
我第一次提交表单时,所有验证都能完美运行。但是,由于我在ajax
电话后没有刷新页面(我首先使用ajax
的原因),验证不会重置。如果字段为空但行为略有不同,则简单[Required]
字段仍会检测并警告用户。在按下提交按钮进行验证之前,它不再等待。远程验证字段根本不再验证。
我到目前为止唯一的选择是在成功提交后用另一个ajax调用重新加载创建表单,但这并不理想。我在这里错过了一些简单的方法来重置验证吗?