2011-05-13 3 views
11

Я использую плагин проверки JQuery на:Jquery Validate плагин Предотвратить Double Разместить на Validation

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

Я хочу инвалидов кнопку отправки только когда проверка проходит:

Пробовал

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

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

ответ

17

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

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

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

Edit:

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

+0

Я пробовал, элемент формы отключается, но форма не отправляется. Любые другие идеи? –

+0

@chris: см. Править –

+0

все тот же результат. Любые другие идеи? –

Смежные вопросы