动态删除ASP MVC中元素的必需属性?

在使用不显眼validation的ASP MVC项目中,有没有办法从元素中动态删除Required属性?

元素在视图模型中使用Required注释进行修饰。 我想我可以通过使用JQuery删除html属性“data-val-required”来删除它,但客户端validation仍然会根据需要处理元素。 是否无法通过操纵不显眼的validation属性来操纵元素的validation?

这是我尝试过的,但它没有用。 如果未选中复选框,我想删除所需的属性。

$("#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"); }); 

我错过了什么,还是不可能?

谢谢!

您可以使用jQuery内置的.rules()方法,您不需要手动删除属性。

去除:

 $("#txtTempHireEndDate").rules("remove", "required") 

加上:

 $("#txtTempHireEndDate").rules("add", "required") 

你可以在jquery.validate中使用rules函数

 $("..").rules("add",....) $("..").rules("remove",...) 

http://jqueryvalidation.org/rules

您必须重新validation表单。

只需从表单中调用validate函数,如下所示:

 $('#FormId').valid(); 

您还可以validation已删除属性的控件:

 $('#txtTempHireEndDate').valid();