Решение должно быть довольно простым. Я стараюсь, чтобы форма не отправлялась правильно, когда в ящиках ввода нет значения. Вот мой JSFiddle: http://jsfiddle.net/nArYa/7/Использование jQuery для предотвращения отправки формы при полях ввода
// Markup
<form action="" method="post" name="form" id="form">
<input type="text" placeholder="Your email*" name="email" id="email">
<input type="text" placeholder="Your name*" autocomplete=off name="name" id="user_name"
<button type="submit" id="signup" value="Sign me up!">Sign Up</button>
</form>
// JQuery
if ($.trim($("#email, #user_name").val()) === "") {
$('#form').submit(function(e) {
e.preventDefault();
alert('you did not fill out one of the fields');
})
}
Как вы можете видеть в JSFiddle, проблема в том, что, когда я печатаю что-то в обоих полях появится окно предупреждения STILL. Я с трудом понимаю, почему. Что-то не так в моем if ($. Trim ($ "# email, #user_name"). Val()) === "")?
Да, вы должны проверить каждый из них в отдельности, если вы используете только один селектор, только одно значение будет возвращено –
Из документации: Получить текущее значение ** первый ** элемент в наборе согласованных элементов – Barmar
Вам нужно прикрепить функцию javascript к вашей кнопке отправки. <кнопка onclick = "somefunction();" .. /> Если функция возвращает false, если поля недействительны. – chadiusvt