Jquery Validate Plugin Предотвращение двойной отправки на проверку

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

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

Я хочу отключить кнопку отправки только после прохождения проверки:

Он попытался

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

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

Ответ 1

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

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

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

Изменить:

Это должно сделать er (я использовал одно текстовое поле с именем 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 удаляется только после того, как прошла проверка.