如何使用JQuery/Javascript在Razor中禁用和启用客户端验证
通过禁用data val属性,我已禁用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代码如下所示
@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。我用过傻瓜,这正是我要找的东西。解决了我的问题。仅通过动态添加类不会禁用验证。当第一次加载页面时,验证程序
将被解析。它只会在第一次加载页面时忽略类名存在的字段