Как я могу обеспечить отправку только одной формы, при этом хорошо играя с jQuery validate? - PullRequest
1 голос
/ 18 апреля 2011

Я использовал следующее, чтобы отключить все кнопки отправки в форме после ее отправки, чтобы люди не могли дважды щелкнуть кнопки отправки и т. Д .:

jQuery (function ($) {
    $('form').bind ('submit', function () {
        $(this).find ('button').attr ('disabled', 'disabled');
    });
});

Я использую jquery.validate, который в случае ошибки проверки по-прежнему запускает «submit» при отправке формы, и, таким образом, у пользователя остается форма с ошибками и отключенными кнопками отправки.

Как я могу изменить приведенный выше код, чтобы определить, были ли в форме ошибки jquery.validation?

Ответы [ 3 ]

2 голосов
/ 18 апреля 2011
$(function() {
    $('form').bind('submit', function() {
        $(this).find('input:submit').attr('disabled', true);
    });
});

Вы можете проверить правильность формы, позвонив по номеру $("form").valid()

0 голосов
/ 18 апреля 2011

Я бы сказал, что вашей большей проблемой было бы "почему jQuery Validate выдает ошибки?"Решите это, и вам не придется беспокоиться об этом слишком много.В идеале, вы должны запускать такого рода вещи из обработчика подтверждения jQuery Validate.

http://docs.jquery.com/Plugins/Validation/validate#options

После запуска проверки вызывается submitHandler для дальнейшей обработки.

$("#myForm").validate({
   submitHandler: function(form) {
    $(form).find ('button').attr ('disabled', 'disabled');
    $(form).submit();
   }
})
0 голосов
/ 18 апреля 2011

Запустите проверку вручную в событии нажатия кнопки отправки и return false;, если есть ошибка, чтобы предотвратить POST:

$('#submit').click(function(){ if(!validate()) return false; });

var validate = function() { if($('#txtFirst').val().trim() == '') return false;}
//etc...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...