【问题标题】:JQuery unobtrusive still validates removed HTML DOMJQuery unobtrusive 仍然验证删除的 HTML DOM
【发布时间】:2013-07-17 14:53:09
【问题描述】:

我创建了一个 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');
    }
});

注意

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

【问题讨论】:

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


    【解决方案1】:

    我最后没有使用不显眼的验证,因为当 DOM 消失时,它无论如何都不会验证客户端,它会验证服务器端(noob school boy 错误)。

    所以在服务器端我只是这样做了:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多