Отключить / включить отправку всей формы с помощью jquery - PullRequest
5 голосов
/ 10 марта 2009

Когда моя форма не проверяется, я хочу отключить функцию отправки формы. Я могу сделать это, отключив кнопку отправки, но при этом клавиша ввода не будет включена.
Я могу установить .submit (вернуть false); но потом я не смогу снова включить его позже.

Есть предложения?

Ответы [ 6 ]

13 голосов
/ 29 июня 2009

просто упрощение Пима (отредактировано, чтобы увеличить вклад Джеймса):


$('#form').submit(formValidated);
7 голосов
/ 14 апреля 2013

Я сделал следующее, что сработало (отключите кнопку отправки и отправки формы):

var condition = true; //check whatever you like
if(condition)
    $('input[type=submit]', this).attr('disabled', 'disabled');
    $('form').bind('submit',function(e){e.preventDefault();});
}else{
    $('input[type=submit]', this).removeAttr('disabled', 'disabled');
    $('form').unbind('submit');
}
5 голосов
/ 10 марта 2009

Как насчет выполнения проверки внутри метода отправки:

$('#form').submit (function() {
 if(formValidated())
  return true;
 return false;
});
2 голосов
/ 11 ноября 2013

Просто упрощение Ника оригинал ответ:

$('#form').submit(formValidated);
0 голосов
/ 11 марта 2009

Вот еще одно возможное решение:

$('#form').change(function() {
    (isValid($('#form')) ? $('#submitBtn').attr('disabled',false) : $('#submitBtn').attr('disabled',true)
});

Конечно, isValid() проверяет, что все ваши $('#form') элементы соответствуют вашим правилам проверки. Вот как бы я это сделал.

0 голосов
/ 10 марта 2009

Вместо прямого вызова функции отправки, вызовите функцию-посредник и выполните проверку там.

т.е.

var isSubmitable = false;

function submitForm() {
   if(isSubmitable) {
       myform.submit();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...