JQuery 不显眼的仍然验证已删除的 HTML DOM
本文关键字:删除 HTML DOM 不显眼 JQuery 验证 | 更新日期: 2023-09-27 18:22:45
我创建了一个 ajax 分部视图,创建后我使用
jQuery.validator.unobtrusive.parse('#recommend_fields');
打开不显眼的验证!
伟大!
现在当我完全删除DOM
即
$('#recommend_fields').remove()
我单击提交,它仍然尝试验证它。我的ModelState
显示了有关以前存在于recommend_fields
中的Id's
的错误。
这有什么原因吗?
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');
}
});
注:注
请记住,以上是片段,它们确实有效,我只是想知道如何关闭不显眼的验证?
我最终没有使用不显眼的验证,因为当 DOM 消失时,它无论如何都不会验证客户端,它会验证服务器端(菜鸟男生错误(。
所以在服务器端我只是这样做:
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
然后将其保存:)