Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: SergioDZU от 30 Марта 2004, 16:12:55

Название: Переход по полям формы при помощи Enter
Отправлено: SergioDZU от 30 Марта 2004, 16:12:55
Можно ли как-то сделать, что бы по нажатию кнопки Enter на одном из полей web-формы не срабатывала кнопка Submit, а осуществлялся переход к следующему полю, как по клавише Tab?:rolleyes:
Название: Переход по полям формы при помощи Enter
Отправлено: Werwolf13 от 30 Марта 2004, 17:50:55
Да.... вообще, вместо кнопки Submit используеш , где myform --- имя формы. Тогда на Enter не будет реагировать (если, конечно, фокус не на ней).
Дальше...
Вот в  func1() и реализуй передачу фокуса на следующий элемент.
Название: Переход по полям формы при помощи Enter
Отправлено: Макс от 30 Марта 2004, 18:15:23
SergioDZU
не надо этого хотеть,
Многие люди (я например :)) делают сабмит формы именно нажатием на Enter (а не нажатием на кнопку)
Тем самым ты сделаешь свою форму неуодбной для пользователей.
Для навигации по элементам формы есть Tab
Название: Дело привычки (enter расположен на keypad\'e)
Отправлено: SergioDZU от 30 Марта 2004, 18:28:16
Макс, я пишу приложение для спечифических пользователей, которые ОЧЕНЬ привыкли использовать Enter (работали в Paradoxe).
Название: Переход по полям формы при помощи Enter
Отправлено: CGVictor от 30 Марта 2004, 18:37:19

В функции проверяешь поля и, если надо - сабмит формы.
Название: Переход по полям формы при помощи Enter
Отправлено: гоша от 30 Марта 2004, 18:49:31
SergioDZU

под ИЕ6

Название: Переход по полям формы при помощи Enter
Отправлено: Yukko от 31 Марта 2004, 01:11:06
поиск по форуму даст интересный результат... кажется mike уже писал что-то подобное... ушел искать...

понимаю, что не все читают вебскрипт с утра и до вечера, но поиск по слову enter   (http://forums.webscript.ru/search.php?s=&action=showresults&searchid=168554&sortby=&sortorder=) обнаруживает другой тред почти с таким же названием!
Как осуществить переход между полями формы нажатием клавиши Enter (http://forums.webscript.ru/showthread.php?s=&threadid=14226&highlight=enter)

по ходу предложенное решение кроссбраузерное :)
Название: Переход по полям формы при помощи Enter
Отправлено: гоша от 31 Марта 2004, 11:39:59
...но плохое :(
Название: Переход по полям формы при помощи Enter
Отправлено: USE от 31 Марта 2004, 12:05:36
Цитировать
Макс:
Для навигации по элементам формы есть Tab

Что ты скажешь тёте-бухгалтеру, которая привыкла левой рукой бежать ленеечкой по данным, а правой набивать? "Используйте TAB"? Не получится - заклюют.
Цитировать
гоша:
но плохое

рабочее, что не может не радовать.
Название: Переход по полям формы при помощи Enter
Отправлено: SergioDZU от 31 Марта 2004, 13:37:00
Цитировать
Werwolf13:
Да.... вообще, вместо кнопки Submit используеш , где myform --- имя формы. Тогда на Enter не будет реагировать (если, конечно, фокус не на ней).
Дальше...
Вот в func1() и реализуй передачу фокуса на следующий элемент.


А как реализовать передачу фокуса на следующий элемент? ;-) Читая данный форум, я понял, что задача не тривиальная, так как свойства на-подобие .focused={true|false} у элементов формы нет... Как быть?  Кстати, пример по ссылке, которую дал Yukko у меня отказался работать в FireBird...
Название: Переход по полям формы при помощи Enter
Отправлено: mike от 31 Марта 2004, 14:25:56
Цитировать
гоша:
...но плохое

Альтернатива есть? А то уж совсем без аргументов...

Цитировать
SergioDZU:
Кстати, пример по ссылке, которую дал Yukko у меня отказался работать в FireBird...

Может, я что-то не то делаю, но примеры (оба) работают в FireBird.
Название: Переход по полям формы при помощи Enter
Отправлено: Yukko от 31 Марта 2004, 14:49:28
гоша
Аргументировано писать мы не умеем??? Или снова как на форуме по регам будет:
Я сказал!!!

Цитировать
SergioDZU:
Кстати, пример по ссылке, которую дал Yukko у меня отказался работать в FireBird...

У вас бухгалтеры или кто там будет пользвать это на FireBird работает? Мне кажется, что то решение, которое было приведено, намного лучше одной строки:
Цитировать
гоша:
под ИЕ6

Название: Переход по полям формы при помощи Enter
Отправлено: SergioDZU от 31 Марта 2004, 14:54:07
Yukko про FireBird все просто: корпоративная концепция развития предусматривает постепенный отказ от Microsoft в пользу открытого софта. И уже сейчас задачи, которые можно решать при помощи открытых программ, требуют делать как раз в этих программах. Вот и геморроимся...
Название: Переход по полям формы при помощи Enter
Отправлено: USE от 31 Марта 2004, 16:31:51
SergioDZU
в mozilla работает вариант mike\'а
Название: Переход по полям формы при помощи Enter
Отправлено: гоша от 31 Марта 2004, 19:55:20
Мы про этот код?











Отлавливаем нажатие клавиши Enter
















почему это плохо?

1. прописывается обработчик для каждого элемента
2. требуется явно указывать "следующий" элемент
3. каким боком тут navigator.appName вообще неясно

альтернативы?

1. прописывать обработчик для формы
2. искать "следующий" элемент самостоятельно
3. вообще, не писать лишнего











Название: Переход по полям формы при помощи Enter
Отправлено: mike от 31 Марта 2004, 20:33:57
гоша
Цитировать
гоша:
почему это плохо?

1. прописывается обработчик для каждого элемента
2. требуется явно указывать "следующий" элемент
3. каким боком тут navigator.appName вообще неясно

1-2. Минус, но таким образом можно дополнительно имитировать tabindex в браузерах, которые его не поддерживают.

3. Забыл про кроссбраузерность. keyCode не везде работает в Мозиллах ранних версий.
Цитировать
гоша:
альтернативы?

1. прописывать обработчик для формы
2. искать "следующий" элемент самостоятельно
3. вообще, не писать лишнего


1. Угу, можно.
2. не всегда правильно, т.к. при измененном tabindex придется держать в памяти полный путь. Впрочем, это альтернатива приписыванию обработчиков каждому элементу.
3. Это уже не альтернатива, давай без подобных пунктов.

Теперь по твоему коду. В MSIE 6 и Опере 7 он у меня отказался работать, полагаю, что по причине

if(event.srcElement){
event.keyCode=9;
return true;
}
if (!event.target || event.target.type == "submit")
return true


Так что пока что он поддерживает только Мозиллу. А это разве хорошо? Может, я напишу лишнего, но код будет рабочим...
Название: Переход по полям формы при помощи Enter
Отправлено: гоша от 01 Апреля 2004, 12:18:24
решение под ие я уже приводил выше
Название: Переход по полям формы при помощи Enter
Отправлено: mike от 01 Апреля 2004, 12:37:02
Цитировать
гоша:
решение под ие я уже приводил выше

А как все-таки насчет кроссбраузерности? Решение под IE - это решение под IE, не больше...
Название: Переход по полям формы при помощи Enter
Отправлено: mike от 01 Апреля 2004, 12:39:39
Вдогонку: к тому же оно пасует на кнопке submit: форма не отправляется на сервер.
Название: Переход по полям формы при помощи Enter
Отправлено: гоша от 01 Апреля 2004, 13:54:01
сомневаюсь в целесообразности дальнейшего флейма
автор темы получил достаточно информации