Как получить JQuery Validate для запуска метода «onchange» «success» вместо «onblur» для выбора меню? - PullRequest
3 голосов
/ 13 апреля 2011

Я использую плагин проверки jQuery. Я использую метод show() для отображения кнопки отправки, если на странице нет ошибок.

У меня есть форма, в которой есть только один выбор / раскрывающееся меню. Проблема, с которой я сталкиваюсь, заключается в том, что когда я выбираю опцию в select, она не показывает кнопку отправки, пока я не нажму где-нибудь еще на странице, когда она должна показывать ее, как только я выберу действительную опцию.

Кто-нибудь знает, как заставить его выстрелить success() onchange или onkeyup вместо onblur?

Вот основной пример того, что я делаю:

$form.validate( {
    rules: {
        favoriteSport: {
            required: true
        }
    },
    messages: {
        favoriteSport: "This is required"
    },
    success: function() {
        console.log("yay, it was valid!");

        $("#submit").show();
    }
});

Ответы [ 3 ]

1 голос
/ 13 апреля 2011

Я закончил тем, что добавил отдельный вызов в bind (), поэтому всякий раз, когда происходит событие изменения, он запускает $ validate (), повторяющий идентификатор меню выбора.

Трудно поверить, что это не встроено в плагин, потому что это самый популярный плагин для проверки форм для jQuery.

Вот пример:

$("#favoriteSport").bind("change keyup", function() {
    $form.validate().element("#favoriteSport");
});
0 голосов
/ 26 января 2019

Прошло много времени с тех пор, как был задан этот вопрос, и я до сих пор не верю, что разработчик плагина предоставил собственное решение этой проблемы.@ Хорошо, что вы были на правильном пути, и я думаю, что небольшое улучшение в логике вашего ответа поможет сделать решение динамичным для всех вариантов выбора:

$('select').bind('change keyup', function() {
    $('form').validate().element(this);
});
0 голосов
/ 13 апреля 2011

попробуйте это .change() вместо .blur() ....

$("#idofSelect").change(function(){

  $("#submitButtonID").show()

})
...