Дизайн и Верстка > Всё о Html

submit формы по нажатию на Enter

(1/2) > >>

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 символов всегда одни и теже.
еще со времен ДОСа =)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии