我有一个创建的ajax局部视图,在创建之后我使用
jQuery.validator.unobtrusive.parse('#recommend_fields');
开启不显眼的验证!
大!
现在我完全删除DOM
即
$('#recommend_fields').remove()
然后我点击提交,它仍然会尝试验证它。我的ModelState
显示以前Id's
内存在的recommend_fields
错误。
这有什么原因吗?
AJAX请求
var request = $.ajax({
url: "/SomeArea/SomeController/CreateView",
type: "GET",
dataType: "html"
});
request.done(function (msg, text) {
if (text == "success") {
$('#recommmended_sys').empty().append(msg);
jQuery.validator.unobtrusive.parse('#recommend_fields');
}
});
N.B
请记住以上是片段,它们确实有用,我只是想知道如何关闭不引人注目的验证?
答案 0 :(得分:0)
我最终没有使用不显眼的验证,因为当DOM消失时它无论如何都不会验证客户端,它会验证服务器端(noob school boy error)。
所以在服务器端我只是这样做了:
if (!ModelState.IsValid && vm.SectionMarkedForDeletion)
ModelState.ToList().ForEach(x =>
{
if (x.Key.Contains("Section"))
x.Value.Errors.Clear();
});
x.Key.Contains("Section")
字面上是检查Id
包含Section
的任何字段,这是我添加的位。
然后我继续使用一些服务提供商来整理Model
的其余部分,然后保存它:)