【发布时间】:2014-11-28 10:06:37
【问题描述】:
我通过禁用 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 中的字段启用客户端验证?
【问题讨论】:
-
第一次加载页面时会解析验证器。如果您更改
data-val-*属性,则必须删除并重新解析验证器。 -
处理此问题的更好方法是使用自定义验证属性。 Foolproof 具有许多有用的属性,例如
[RequiredIfTrue],可能适合您的需求 -
谢谢斯蒂芬。我使用了 Foolprood,这正是我正在寻找的东西。解决了我的问题。
标签: javascript jquery asp.net-mvc razor asp.net-mvc-5