Как вы определяете, какая отправка использовалась для отправки формы с помощью jQuery? - PullRequest
1 голос
/ 30 марта 2012

Имейте в виду, что пользователю НЕ нужно нажимать кнопку «Отправить nput».Они могут перейти к нему и нажать Enter.

Итак, учитывая все способы отправки формы, как определить, какой из них использовался для отправки формы внутри события отправки.У меня разные имена на двух отправляемых элементах.

Ответы [ 2 ]

4 голосов
/ 30 марта 2012

Любое действие, которое вызывает кнопку отправки & mdash; будь то фактический щелчок мышью или какое-либо действие на клавиатуре & mdash; все еще вызывает событие "щелчка" и все еще заставляет входные данные быть включены в качестве параметра формы.

То есть, если вы видите параметр формы с именем и значением поля ввода, вы знаете, что была нажата эта кнопка отправки.

изменить & mdash; если отправка формы происходит из-за того, что вы нажимаете «Enter» в текстовом поле, браузер выбирает первую кнопку отправки (я думаю; похоже, именно это и делает Firefox по крайней мере). (Подождите, поцарапайте это; Firefox, похоже, находит следующий ввод "submit" после элемента, который был в фокусе при нажатии "Enter" ...)

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

<form action='whatever' method='post'>
  <input type='text' name='text'>
  <input name='submit1' value='submit1' type='submit'>
  <input name='submit2' value='submit2' type='submit'>
</form>

Нажатие «Enter» в текстовом поле приведет к тому, что «submit1 = submit1» будет параметром формы, как если бы нажать «Enter», когда «submit1» было в фокусе. Вкладка «submit2» и нажатие «Enter» приведут к тому, что «submit2 = submit2» окажется среди параметров.

В любом случае в списке параметров отображается только один из входов "submit".

1 голос
/ 30 марта 2012

Вместо использования разных имен используйте разные значения, например:

<input type="submit" name="submit" value="Submit A">
<input type="submit" name="submit" value="Submit B">

Вы также можете использовать кнопки вместо входов, если хотите, чтобы метки отличались от значений.

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