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');
    }
});

:注

请记住,以上是片段,它们确实有效,我只是想知道如何关闭不显眼的验证?

JQuery 不显眼的仍然验证已删除的 HTML DOM

我最终没有使用不显眼的验证,因为当 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然后将其保存:)