通过某种表单生成器,元素列表显示在页面上,并且它们都具有验证。当我查看HTML源代码时,会看到类似以下内容:
<input type="text" id="email" name="email" data-val-required="No valid email address!" data-val="true">
我需要以某种方式采用动态方式来启用/禁用此类元素的验证。我尝试通过将data-val
属性设置为false
,然后又返回true
来启用/禁用该属性。但这似乎并没有对此做出回应。验证始终存在!
任何人都不知道我如何以动态方式启用/禁用某些字段的验证?
我实际上找到了一个更适合我的需求的解决方案。我可以执行以下操作:
$(function() {
var settngs = $.data($('form')[0], 'validator').settings;
settngs.ignore = ".ignore";
});
因此,我可以通过在元素中添加或删除类名ignore
来“切换”我想要的任何元素。
我认为这会有所帮助。
<div class="editor-field">
@{ Html.EnableClientValidation(false); }
@Html.TextBoxFor(m => m.BatchId, new { @class = "k-textbox" })
@{ Html.EnableClientValidation(true); }
</div>
这对我来说更好:
$('#Reference').rules('add', 'required');
$('#Reference').rules('add', 'remove');
$('#Reference').rules('add', { minlength: 2 });