Как обойти отправку формы HTML, используя jQuery (javascript) - PullRequest
1 голос
/ 08 октября 2011

У меня есть простая форма

<form action="try.php" method="POST">
    <input id="name" name="name" type="text" placeholder="Name" />
    <input id="btn" name="" type="submit" value="Submit" />
</form>

Когда я нажимаю кнопку «Отправить», я хочу отправить форму, только если соблюдено определенное условие;и если нет, форма не будет отправлена ​​(вместо показа и оповещения). Я не хочу менять здесь разметку .Итак, как мне убедиться, что, хотя я и предоставил <form action="try.php" method="POST">, форма не будет отправлена, если условие не выполнено?

Я хочу сделать что-то вроде приведенного ниже кода.

//jQuery code   
$("#btn").live('click', function(event) {
      if(<condition is true>){
          //Show message
      } else {
         //Submit Form
      }
});

Ответы [ 3 ]

4 голосов
/ 08 октября 2011

Если вы не хотите отправлять форму, вы можете отменить действие по умолчанию, используя preventDefault()

if(<condition is true>){
      event.preventDefault(); 
  }

или return false; Лучше сделать первое, еслиВы также хотите, чтобы событие не пузырилось.

2 голосов
/ 08 октября 2011

Вы должны добавить обработчик для отправки события, а не нажатия кнопки.

Попробуйте что-то вроде этого:

$('#form').submit(function() {
  if(<condition is true>) {
    alert('Fill all fields');
    return false; // will cancel default submit
  }

  // do something before submit
  // if necessary
});
2 голосов
/ 08 октября 2011

Вы можете использовать event.preventDefault () или return false;.Тогда вы можете легко отправить форму с form.submit()

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