Не получать сообщение проверки для @Html.DropDownListFor() после использования выбранного jquery

Код приведен ниже:
Если я не выберу какое-либо значение в поле со списком и нажму «Отправить», сообщение о проверке не появится.

<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>

person Joseph    schedule 06.01.2014    source источник
comment
где код jquery?   -  person Cris    schedule 06.01.2014
comment
Я не уверен, что понимаю вас. Chosen - это плагин jquery. Он доступен на этом сайте harvesthq.github.io/ выбрано   -  person Joseph    schedule 06.01.2014


Ответы (3)


Повторяю мой краткий комментарий в качестве ответа. :-)

Чтобы получить сообщения проверки, я использую тот же подход, который упоминает Джозеф, хотя я использую класс HTML для тех выборок, которые я использую с Chosen. Например:

validator.settings.ignore = ":hidden:not(.select-chosen)";

Чтобы очистить сообщение проверки при выборе значения, необходимо подключить прослушиватель событий для событий «изменения» и явным образом принудительно выполнить повторную проверку выбора. Так, например, если у вас есть переменная select, которая ссылается на поле выбора:

select.on("change", function(evt, params) {
    $(evt.target).valid();
});

Выбранный запускает эти события «изменения» всякий раз, когда изменяется его значение.

person Mike Brennan    schedule 23.01.2014
comment
У меня такая же проблема, я добавил строку Validator.settings..., но теперь, когда я нажимаю кнопку, моя модель больше не появляется. - person Chlebta; 14.05.2014

Решено после долгих исследований...

$(document).ready(function () {
    var validator = $("#Your_form_id").data('validator');
    validator.settings.ignore = ":hidden:not(select)";
});

person Joseph    schedule 07.01.2014
comment
Теперь он работает, но не удаляет сообщение проверки, когда я выбираю значение в раскрывающемся списке. Он отключается, только когда я нажимаю кнопку «Отправить». - person Joseph; 07.01.2014
comment
Джозеф, вы решили проблему с очисткой сообщения проверки при выборе значения? Я пытаюсь решить эту проблему сейчас. - person Mike Brennan; 22.01.2014
comment
Хорошо, нашел решение. Предположим, что на поле выбора ссылается переменная select: select.on('change', function(evt, params) { $(evt.target).valid(); }); Это принудительно проверяет поле. - person Mike Brennan; 22.01.2014
comment
Спасибо @MikeBrennan, в итоге я использовал раскрывающийся список начальной загрузки. Но не могли бы вы опубликовать его как ответ, чтобы я мог пометить его как ответ .. может помочь smone в будущем :) - person Joseph; 22.01.2014
comment
@MikeBrennan, куда добавить функцию выбора, которую я пробовал $(document).ready(function () { var validator = $("#form").data('validator'); validator.settings.ignore = ":hidden:not(.chosen-select)"; }); select: select.on('change', function (evt, params) { $(evt.target).valid(); }); - person Chlebta; 14.05.2014

Таким образом, правильное согласование приведенных выше ответов

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

    });
person ksg    schedule 03.03.2015