Отправить форму без Javascript - PullRequest
7 голосов
/ 17 октября 2011

У меня есть форма, которая использует JavaScript для проверки всей формы на стороне клиента. Форма отправляется через JavaScript, если все поля заполнены правильно, в отличие от стандартной кнопки «отправить»:

<button name="button" type=button onclick="validateReqFields('mForm', 'username, password, compPassword, firstName, lastName');">Register</button>

document[formName].submit();

Если на клиенте отключен JavaScript, вся проверка формы выполняется на стороне сервера (на самом деле она выполняется снова независимо, но это не имеет значения). Проблема заключается в использовании кнопки с типом кнопки вместо отправки. Он прекрасно работает с javascript, но как мне обойти это, когда javascript недоступен? Если я использую кнопку отправки вместе с javascript, то она отправляет форму при каждом нажатии кнопки и не работает должным образом.

Ответы [ 4 ]

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

Измените атрибут type на submit.

<button name="button" type="submit" ... />
3 голосов
/ 17 октября 2011

Используйте кнопку отправки вместо кнопки "button", и тогда ваша validateReqFields функция вернет false, если форма недействительна.

Затем извлеките отправку формы из validateReqFields, если хотите.

Таким образом

  • Если форма действительна, то нажатие кнопки будет пузыриться, и форма будет отправлена ​​
  • Если форма недействительна, то javascriptотменит нажатие кнопки
  • Если javascript отключен, то он будет отправлен на сервер как запасной вариант
0 голосов
/ 17 октября 2011

Вы можете использовать тег <noscript> и инкапсулировать приведенный выше код с типом кнопки как отправить.Если у клиента есть js, код внутри noscript будет игнорироваться.

0 голосов
/ 17 октября 2011

Используйте теги <noscript></noscript> для определения «обычной» кнопки отправки, когда JavaScript отключен.

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