在ASP MVC中动态地删除元素'

dynamically remove an element's required attribute in ASP MVC?

本文关键字:元素 删除 ASP MVC 动态      更新时间:2023-09-26

是否有一种方法,在使用不引人注目的验证的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");
});

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

谢谢!

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

删除:

$("#txtTempHireEndDate").rules("remove", "required")
添加:

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

您可以在jquery.validate

中使用rules函数
$("..").rules("add",....)
$("..").rules("remove",...)
http://jqueryvalidation.org/rules

您必须重新验证表单。

从form调用validate函数,像这样:

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

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

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

$ (" # dailyFlow ") .removeAttr (data-val-required);