在使用不显眼验证的ASP MVC项目中,有没有办法从元素中动态删除Required属性?
元素在视图模型中使用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");
});
我错过了什么,或者只是不可能?
谢谢!
答案 0 :(得分:16)
您可以使用jQuery中内置的.rules()
方法,您无需手动删除属性。
删除:
$("#txtTempHireEndDate").rules("remove", "required")
添加:
$("#txtTempHireEndDate").rules("add", "required")
答案 1 :(得分:2)
您可以在jquery.validate
中使用规则功能$("..").rules("add",....)
$("..").rules("remove",...)
答案 2 :(得分:0)
您必须重新验证表单。
只需从表单中调用validate函数,如下所示:
$('#FormId').valid();
您还可以验证已删除属性的控件:
$('#txtTempHireEndDate').valid();
答案 3 :(得分:0)
$(“#dailyFlow”)。removeAttr('data-val-required');