代码如下:
如果我没有在组合框中选择任何值并按提交,则不会询问验证消息。
<tr>
<td>Department </td>
<td> : </td>
<td class="@*@Model.NoEdit*@">
@Html.DropDownListFor(m => m.DepartmentId, new SelectList(Model.Departments, "SelectedDepartmentId", "DepartmentCode"), "-- Select Department--", new {@class = "chosen-select", id = "cboDeptartment" })
@Html.ValidationMessageFor(model => model.DepartmentId)
</td>
答案 0 :(得分:8)
$(document).ready(function () {
var validator = $("#Your_form_id").data('validator');
validator.settings.ignore = ":hidden:not(select)";
});
答案 1 :(得分:6)
重申我的简短评论作为答案。 : - )
为了获得验证消息,我使用了Joseph提到的相同方法,尽管我使用了一个HTML类来处理我使用Chosen的那些选择。例如:
validator.settings.ignore = ":hidden:not(.select-chosen)";
要在选择值时清除验证消息,您需要为“更改”事件附加事件侦听器,并明确强制重新选择select。例如,假设您有一个引用选择框的变量select
:
select.on("change", function(evt, params) {
$(evt.target).valid();
});
选择会在值发生变化时触发“更改”事件。
答案 2 :(得分:2)
正确对齐上述答案
$(function () {
var validator = $("#Your_form_id").data('validator');
validator.settings.ignore = ":hidden:not(.chosen-select)";
$(".chosen-select").chosen();
$("#Your_dropdown_id").change(function (evt, params) {
$(evt.target).valid();
})
});