Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JQuery/Javascript在Razor中禁用和启用客户端验证_Javascript_Jquery_Asp.net Mvc_Razor_Asp.net Mvc 5 - Fatal编程技术网

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

如何使用JQuery/Javascript在Razor中禁用和启用客户端验证,javascript,jquery,asp.net-mvc,razor,asp.net-mvc-5,Javascript,Jquery,Asp.net Mvc,Razor,Asp.net Mvc 5,通过禁用data val属性,我已禁用razor文件中某个字段的客户端验证。该字段如下所示 @Html.TextAreaFor(model => model.CallNoteViewModel.CallNote_Memo, 3, 15, new { @class = "form-control", **@data_val = "false"** }) 我想根据是否勾选复选框启用/禁用该字段的验证。我的JQuery代码如下所示

通过禁用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建议的万无一失的库。它非常适合我的情况。

当第一次加载页面时,将解析验证程序。如果更改
数据val-*
属性,则必须删除并重新解析验证器。更好的处理方法是使用自定义验证属性。具有许多有用的属性,例如
[RequiredIfTrue]
,这些属性可能适合您的需要Hanks Stephen。我用过傻瓜,这正是我要找的东西。解决了我的问题。仅通过动态添加类不会禁用验证。当第一次加载页面时,
验证程序
将被解析。它只会在第一次加载页面时忽略类名存在的字段