这是一个MVC项目,具有几个文本框和一个复选框。取消选中所有文本框都是必需的。选中后,其中一个文本框将被禁用,而不是必需的,而其他文本框仍将是必需的。红色边框和Required错误消息不会随着.rules("remove","required")消失。我添加了一些CSS来更改边框的颜色,但是我不知道如何摆脱错误消息。

模型视图

[Required(ErrorMessage="Required")]
public string textBox2{ get; set; }
[Required(ErrorMessage="Required")]
public string textBox3{ get; set; }


浓缩剃刀HTML

@Html.CheckBoxFor(model => model.checkBox)
@Html.TextBoxFor(model => model.textBox1, new { @class = "disabledTrue" })
@Html.TextBoxFor(model => model.textBox2)
@Html.TextBoxFor(model => model.textBox3)


CSS禁用红色边框,将颜色更改为浅灰色

.disabledTrue.input-validation-error:disabled {
    border-color:lightgray;
}


jQuery查询

$(document).ready(function () {
    $('#textBox1').rules("add", "required");

    $('#checkBox').click(function () {
        //makes the input unrequired
        $('#textBox1').rules("remove", "required");
    });
});

最佳答案

我最终使用了这个。效果很好。选中复选框后,它不再是必需的,并且不再显示“必需”文本。选中它是必需的,并显示“必需”文本。

$(document).ready(function () {
    $('#checkBox').click(function () {
        if ($('#checkBox').is(":checked")) {
            //makes the input unrequired
            $('#textBox1').rules("remove", "required");
             //I added .disableRequired to my HTML
             // I found .field-validation-error with firebug
             $("span.disableRequired.field-validation-error").css("display", "none");
        }
        else{
            //makes the input unrequired
            $('#textBox1').rules("add", "required");
             //I added .disableRequired to my HTML
             // I found .field-validation-error with firebug
             $("span.disableRequired.field-validation-error").css("display", "normal");
          }
    });
});

关于jquery - jQuery验证暂时删除必需的标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23547271/

10-11 02:37