这是一个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/