Дизайн и Верстка > Всё о Html
submit формы по нажатию на Enter
Forza:
Заметил я забавную вещь: если в форме одно текстовое поле, то по нажатию на Enter во время редактирование текстового поля происходит submit формы. Если добавить второе текстовое поле, то нет никакой реакции на Enter.
В чём грабли? Как это можно исправить (чтобы по Enter\'у submit был всегда!)?
Вот пример форм, реагирующей и нереагирующей на Enter:
--- Код: ---
Форма, не реагирующая на Enter (2 текстовых поля)
логин
пароль
Форма, реагирующая на Enter (1 текстовое поле)
логин
--- Конец кода ---
AliMamed:
а где сабмиты? вопрос не по хтмлю а по браузерам. в разных браузерах будет поразному
Forza:
В обоих случаях сабмит в виде image, т.е. . Но наличие или отсутствие этого никак не влияет на проблему, что при изменении количества с одного до двух форма перестаёт реагировать на Enter.
Браузер - шестой Эксплорер.
Но я думаю, дело не в нём: неоднократно приходилось заполнять на сайтах большие формы, которые сабмитились обыкновеным нажатием на Enter.
Можно как-нибудь повесить на нажатие Enter\'а в форме её сабмит? Или это вопрос уже в форум про JavaScript? ;)
Forza:
Итак, в ходе экспериментов было выяснено (IE 6.0):
а) форма с одним текстовым полем - сабмитится по нажатию на Enter всегда,
б) форма с двумя текстовыми полями - сабмитится по энтеру, только если есть в форме .
Т.к. сабмит формы надо делать по нажатию на картинку , то в форму нельзя ставить .
Пришлось передрать из книжки нижеследующее:
--- Код: ---
if (document.layers) {
document.captureEvents(Event.KEYPRESS)
enter=??????
}
else {
enter=13
}
function checkKeyOnForm1 (evt) {
if (evt) {
thisKey=evt.which
}
else {
thisKey=window.event.keyCode
}
if (thisKey==enter)
{
form1.submit();
}
}
...
--- Конец кода ---
Как видно, это универсальный способ, который должен работать и в Эксплорере, и в Навигаторе. В книжке рассматривался пример с нажатием на стрелки, и было указано, что у них разные коды в разных броузерах. В нетскейпе у Enter тоже будет код 13?
Ну и главный вопрос - это самый простой способ решить эту проблему?
ThE0ReTiC:
--- Цитировать ---Forza:
В нетскейпе у Enter тоже будет код 13?
--- Конец цитаты ---
это не от браузера зависит а от кодовой таблицы =)
первые 127 символов всегда одни и теже.
еще со времен ДОСа =)
Навигация
Перейти к полной версии