Плагин Jquery Validate предотвращает двойную отправку при проверке - PullRequest
13 голосов
/ 13 мая 2011

Я использую плагин проверки jquery по адресу:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Я хочу отключить кнопку отправки ТОЛЬКО при прохождении проверки:

попробовал

$("#submit").click(function()
{
    $(this).attr("disabled", "disabled");
});

Но это отключает кнопку отправки, даже если проверка не удалась. Есть ли способ отключить отправку только тогда, когда проверка проходит успешно и происходит событие отправки?

1 Ответ

18 голосов
/ 13 мая 2011

Просматривая источник, он выглядит , как будто вы должны иметь возможность переопределить invalidHandler, что-то вроде:

$("#form").validate({
    submitHandler: function(form) {
    // disable your button here
    form.submit();
   },
   invalidHandler: function() {
     // re-enable the button here as validation has failed
   }
});

На первый взгляд это кажетсябудьте так, как вы хотели бы сделать это с помощью плагина validate, но, к сожалению, у меня нет времени на то, чтобы возиться с ним, чтобы был уверен , что он работает.

Редактировать:

Это должно произойти (для тестирования я использовал одно текстовое поле с именем fname):

$('#frm').bind('invalid-form.validate', function(){
    // you can add extra validation handling here if you want to
});

$('#frm').validate({
    rules: {
        fname: "required"
    },
    submitHandler: function(form){
        $('form input[type=submit]').attr('disabled', 'disabled');
        form.submit();
    }
});

submitHandler равно только попадание после прохождения проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...