Подать форму, только если условие выполнено? - PullRequest
1 голос
/ 22 ноября 2010

Прямо сейчас у меня есть базовая настройка корзины покупок. Когда пользователь вводит свою информацию, я хочу записать эти данные в файл XML. Для этого я использовал метод POST для отправки формы. Однако я хочу отправить эту форму для сохранения только в том случае, если она соответствует условиям (например, использование регулярного выражения, чтобы убедиться, что в телефонном номере нет букв).

Итак, моя форма такая:

<form action= "confirmation.php" name="memberData" method="post">
        <input name="textField" id="textField"></input>
        <input type="submit" name="submitbutton" id="submitbutton" onclick="submitIt()" value="Submit Button"/>
    </form>

Итак, я хочу вызвать эту функцию submitIt (), которая проверяет правильность данных. Если это действительно так, то я хочу выполнить свою форму действий. В противном случае я хочу, чтобы он не перенаправлялся, пока пользователь не исправит введенную информацию. Прямо сейчас он действительно предупреждает пользователя о неправильном поле, но сразу же после перенаправления и сохранения информации в любом случае.

Есть ли способ выполнить действие формы, только если оно удовлетворяет определенным условиям?

Ответы [ 4 ]

5 голосов
/ 22 ноября 2010

То, что вы хотите сделать здесь, - это предотвратить действие по умолчанию для события, в вашей форме подачи заявки. Для этого обработчик должен вернуть false. Чтобы это работало, вам нужно изменить обработчик с onClick кнопки отправки на onSubmit формы.

Вы также можете прочитать немного о событиях здесь http://www.quirksmode.org/js/introevents.html.

4 голосов
/ 22 ноября 2010

Вы можете сделать что-то вроде этого:

<form ... onsubmit="return submitIt();">

Где submitIt() - это функция javascript, которая возвращает истину, если она действительна, ложь, если она недействительна.

2 голосов
/ 22 ноября 2010

Вам необходимо остановить обработку формы, отменив обрабатываемое событие. См. этот пример .

Обратите внимание, что это, очевидно, не будет работать, если JavaScript отключен, поэтому вам все равно необходимо выполнить эти проверки на стороне сервера и соответствующим образом обработать ошибку проверки на стороне сервера.

1 голос
/ 22 ноября 2010

Кроме того, проверьте много плагинов JQuery для этого.

http://plugins.jquery.com/plugin-tags/form-validation

После ознакомления с несколькими простыми примерами и правильного размещения всего на странице проверка формы становится очень простой и гибкой для всех ваших сайтов.

Кроме того, я действительно вижу необходимость в проверке на стороне клиента без того, чтобы пользователь покинул страницу, но не забывайте, что вы ДОЛЖНЫ по-прежнему очищать и проверять поля формы при отправке формы. Злонамеренный пользователь может просто отключить JavaScript, чтобы пройти проверку, или пользователь, использующий NoScript, даже не осознает, что проверка проходит.

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