JQuery不引人注目仍然验证删除的HTML DOM

时间:2013-07-17 14:53:10

标签: c# jquery asp.net-mvc asp.net-mvc-3 jquery-validate

我有一个创建的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

请记住以上是片段,它们确实有用,我只是想知道如何关闭不引人注目的验证?

1 个答案:

答案 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的其余部分,然后保存它:)