Как обойти отправку формы HTML, используя jQuery (javascript)
У меня простая форма
<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 ответа
Если вы не хотите отправлять форму, вы можете предотвратить действие по умолчанию, используя preventDefault()
if(<condition is true>){
event.preventDefault();
}
или же return false;
Лучше сделать первое, если вы не хотите, чтобы событие не всплывало.
Вы должны добавить обработчик для отправки формы события, а не для нажатия кнопки.
Попробуйте что-то вроде этого:
$('#form').submit(function() {
if(<condition is true>) {
alert('Fill all fields');
return false; // will cancel default submit
}
// do something before submit
// if necessary
});
Вы можете использовать http://api.jquery.com/event.preventDefault/ или return false;
, Затем вы можете легко отправить форму с form.submit()