使用jQuery非侵入式验证禁用对元素的验证

问题描述 投票:12回答:3

通过某种表单生成器,元素列表显示在页面上,并且它们都具有验证。当我查看HTML源代码时,会看到类似以下内容:

<input type="text" id="email" name="email" data-val-required="No valid email address!" data-val="true">

我需要以某种方式采用动态方式来启用/禁用此类元素的验证。我尝试通过将data-val属性设置为false,然后又返回true来启用/禁用该属性。但这似乎并没有对此做出回应。验证始终存在!

任何人都不知道我如何以动态方式启用/禁用某些字段的验证?

jquery unobtrusive-validation
3个回答
44
投票

我实际上找到了一个更适合我的需求的解决方案。我可以执行以下操作:

$(function() {
    var settngs = $.data($('form')[0], 'validator').settings;
    settngs.ignore = ".ignore";
});

因此,我可以通过在元素中添加或删除类名ignore来“切换”我想要的任何元素。


15
投票

我认为这会有所帮助。

<div class="editor-field">
       @{ Html.EnableClientValidation(false); }
       @Html.TextBoxFor(m => m.BatchId, new { @class = "k-textbox" })
       @{ Html.EnableClientValidation(true); }
</div>

0
投票

这对我来说更好:

$('#Reference').rules('add', 'required');
$('#Reference').rules('add', 'remove');
$('#Reference').rules('add', { minlength: 2 });
© www.soinside.com 2019 - 2024. All rights reserved.