如何使用JQuery/Javascript在Razor中禁用和启用客户端验证

How to disable and enable client validation in Razor using JQuery/Javascript

本文关键字:启用 验证 客户端 Razor JQuery 何使用 Javascript      更新时间:2023-09-26

我通过禁用 data-val 属性禁用了 razor 文件中字段的客户端验证。该字段如下所示

  @Html.TextAreaFor(model => model.CallNoteViewModel.CallNote_Memo, 3, 15, 
                      new { @class = "form-control", **@data_val = "false"** })

我想根据是否勾选复选框来启用/禁用对该字段的验证。我有我的JQuery代码如下。

       $('#checkbox').click(function () {
            if ($('#checkbox').prop('checked')) 
            {
                $('#CallNoteViewModel_CallNote_Memo').data('val', 'true');
                console.log($('#CallNoteViewModel_CallNote_Memo').data('val'));
            } 
            else
            {
                $('#CallNoteViewModel_CallNote_Memo').data('val', 'false');
                console.log($('#CallNoteViewModel_CallNote_Memo').data('val'));
            }
        });

我尝试通过在jQuery中使用attr()函数来设置data-val属性,但即使这样也启用了客户端验证。

如何在 jQuery 中为字段启用客户端验证?

我假设您正在使用不显眼的表单验证。

$(function() {
if($('#' + checkboxId).is(":checked"))
{
    var config = $.data($('form')[0], 'validator').settings;
    config.ignore = ".disableValidation";
}
});

使用上面的代码禁用对所选字段的验证。只需将类".disableValidation"添加到要禁用验证的字段中即可。将禁用表单中这些字段的验证。

我已经按照Stephen Muecke的建议使用了FoolProof库。它非常适合我的案例。