Нажатие «enter» из поля ввода (текста), когда форма имеет ввод «submit» - PullRequest
1 голос
/ 23 сентября 2010

Я пытаюсь выяснить, что-то связанное с поведением, описанным этим старым вопросом прошлого года . У меня есть форма с одним полем ввода текста и одной кнопкой «отправить». В отличие от человека, который задал этот вопрос, я хочу форму для отправки, когда пользователь нажимает "ввод". Действительно, это работает для меня; что не работает, тем не менее, это причуды, которые приводят к виртуальному щелчку по входу «submit» в форме: Firefox и Chrome включают имя входа «submit» в публикуемые параметры, а IE - нет. Другими словами, я хочу, чтобы это странное поведение отправки отправляло поле ввода текста, а также отправку ввода.

Самое смешное, что моя форма делала это до тех пор, пока я не представил какое-то таинственное изменение. (Firefox и Chrome все еще работают, но когда-то IE работал, а теперь нет.) Я, наверное, могу понять, что я изменил, чтобы сломать его, но, как мне показалось, @bobince понял кое-что об этой причуде, я решил попросить посмотреть если есть известные (возможно, даже документированные) способы управления им.

Вот моя тестовая страница: http://gutfullofbeer.net/post.html

Это примерно такой простой тест, какой я мог бы составить:

<!DOCTYPE html>
<html>
  <body>
    <form name='foo' action='cgi/echoparams.cgi' method='post'>
      <input type='text' name='name' value=''>
      <input type='submit' name='submit_button' value='Submit'>
    </form>
  </body>
</html>

Сценарий cgi просто попугайует обратно опубликованный контент.

Ответы [ 2 ]

3 голосов
/ 23 сентября 2010

Да, извините, это не исправимо напрямую.Я не знаю, каково было ваше предыдущее «рабочее» дело, но я подозреваю, что мог присутствовать дополнительный вклад.(Только при единственном вводе текста происходит исключительное поведение.)

В связи с историческими проблемами, связанными с вопросом о том, является ли кнопка отправки по умолчанию «успешной», лучше никогда не полагаться на нее.Добавьте скрытый ввод, чтобы обозначить отправку, и пропустите name на кнопке отправки.Поместите любой сценарий отправки на form onsubmit вместо кнопки по умолчанию.

Если у вас есть дополнительные кнопки отправки для различных действий (например, «Редактировать против удаления»), тогда заставьте первую кнопку выполнить действие «по умолчанию» и установитьбез имени, затем добавьте name / value s, которые переопределяют поведение по умолчанию для других кнопок.Они обязательно будут «успешными» (и получат событие click) при нажатии.

2 голосов
/ 24 августа 2012

Я просто наткнулся на это странное поведение. У меня был один случай, в котором были представлены значение атрибута name и value от кнопки, и другой случай, когда атрибуты name и value тега кнопки отсутствовали в моих данных POST.

(я использовал тег <button ...>, но, похоже, это не имеет значения.)

Поработав некоторое время, я наконец нашел решение, поэтому я зарегистрировался, чтобы сообщить вам, ребята.

IE7 и IE8 начинают отправлять name & value существующего тега кнопки, как раз в случае второго тега <input type="text">. Если на странице присутствует только один <input type="text">, и вы нажмете клавишу ввода в этом поле ввода, name & value кнопки отсутствуют.

Радиокнопки, флажки, скрытые входы ... не важно, вам нужна секунда <input type="text">, чтобы это исправить.

...