【发布时间】:2015-07-16 23:04:25
【问题描述】:
在 ASP MVC 项目中使用不显眼的验证,有没有办法从元素中动态删除 Required 属性?
该元素在视图模型中使用必需注释进行装饰。我想我可以通过使用 JQuery 删除 html 属性“data-val-required”来删除它,但客户端验证仍将元素视为必需的。是不是不能通过操纵不显眼的验证属性来操纵元素的验证?
这是我尝试过的,但没有奏效。如果未选中复选框,我想删除所需的属性。
$("#chkTempHire").click(function () {
var checked = $(this).attr("checked");
var attr = $("#txtTempHireEndDate").attr("data-val-required");
var hasAttr = false;
if (typeof attr !== typeof undefined && attr !== false)
hasAttr = true;
if (!checked && hasAttr)
$("#txtTempHireEndDate").removeAttr("data-val-required");
});
我错过了什么,还是不可能?
谢谢!
【问题讨论】:
-
一种解决方案是使用MVC的Foolproof Validation,它允许你使用
RequiredIf等属性。 -
条件验证就是你要找的,例如:stackoverflow.com/questions/17970584/…
-
谢谢,我正在使用 FluentValidation,它对我有用。我一直在尝试更多地了解不显眼的验证是如何工作的。
标签: javascript jquery asp.net-mvc unobtrusive-validation