Поиск использовал — ни одно из предложенных ранее решений не работает в трёх браузерах IE/Opera/Firefox.
У меня получилось сделать только для IE/Opera.
Контекст задачи:
Используется что-то типа google suggest. На форме есть несколько input type=textbox-ов. При вводе значения, открывается табличка под input-ом с возможными вариантами. Вариант не вставляется сразу в textbox, как в google, а его надо выбрать самостоятельно. Варианты перебираются мышью или кнопками up/down. При клике на варианте или нажатии кнопки Enter должна произойти вставка варианта в textbox. Конечно, при нажатии Enter НЕ ДОЛЖНА происходить отправка всей формы!
Re: Как отключить отправку формы по нажатию enter?
Здравствуйте, <Аноним>, Вы писали:
А>Используется что-то типа google suggest. На форме есть несколько input type=textbox-ов. При вводе значения, открывается табличка под input-ом с возможными вариантами. Вариант не вставляется сразу в textbox, как в google, а его надо выбрать самостоятельно. Варианты перебираются мышью или кнопками up/down. При клике на варианте или нажатии кнопки Enter должна произойти вставка варианта в textbox. Конечно, при нажатии Enter НЕ ДОЛЖНА происходить отправка всей формы!
После обработки сообщения прерывать "всплывание" сообщения в DOM, с помощью event.stopPropagation или отменять его с помощью event.preventDefault. Не могу ничего сказать о кроссбраузерности этого подхода, поскольку самому писать пример очень лень.
Во всем нужна мера, даже в том, чтобы соблюдать ее.
Re: Как отключить отправку формы по нажатию enter?
Здравствуйте, Аноним, Вы писали:
А>Поиск использовал — ни одно из предложенных ранее решений не работает в трёх браузерах IE/Opera/Firefox. А>У меня получилось сделать только для IE/Opera.
А>Контекст задачи: А>Используется что-то типа google suggest. На форме есть несколько input type=textbox-ов. При вводе значения, открывается табличка под input-ом с возможными вариантами. Вариант не вставляется сразу в textbox, как в google, а его надо выбрать самостоятельно. Варианты перебираются мышью или кнопками up/down. При клике на варианте или нажатии кнопки Enter должна произойти вставка варианта в textbox. Конечно, при нажатии Enter НЕ ДОЛЖНА происходить отправка всей формы!
В событии onSubmit формы проверять флаг.
Это событие имхо кросбраузерно на все 100, иначе никакие JS валидаторы не работали бы
Re[2]: Как отключить отправку формы по нажатию enter?
От:
Аноним
Дата:
14.03.06 18:17
Оценка:
Здравствуйте, Rumata, Вы писали:
R>Здравствуйте, Аноним, Вы писали:
А>>Поиск использовал — ни одно из предложенных ранее решений не работает в трёх браузерах IE/Opera/Firefox. А>>У меня получилось сделать только для IE/Opera.
А>>Контекст задачи: А>>Используется что-то типа google suggest. На форме есть несколько input type=textbox-ов. При вводе значения, открывается табличка под input-ом с возможными вариантами. Вариант не вставляется сразу в textbox, как в google, а его надо выбрать самостоятельно. Варианты перебираются мышью или кнопками up/down. При клике на варианте или нажатии кнопки Enter должна произойти вставка варианта в textbox. Конечно, при нажатии Enter НЕ ДОЛЖНА происходить отправка всей формы! R>В событии onSubmit формы проверять флаг. R>Это событие имхо кросбраузерно на все 100, иначе никакие JS валидаторы не работали бы
Помогло, но не совсем.
Действительно, валидаторы работают везде.
Как определить, действительно ли нажата кнопка submit, а не enter на форме?
Я для этого использую переменную, которая сначала false, а при нажатии кнопки становится true.
Нажатие кнопки определяю по событию onclick и onkeydown на ней.
Здравствуйте, Аноним, Вы писали:
А>Помогло, но не совсем.
А>Действительно, валидаторы работают везде. А>Как определить, действительно ли нажата кнопка submit, а не enter на форме? А>Я для этого использую переменную, которая сначала false, а при нажатии кнопки становится true. А>Нажатие кнопки определяю по событию onclick и onkeydown на ней.
А>Проблема в том, что при нажатии enter на форме вызывается событие onclick на submit кнопке. А>http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onclick.asp?frame=true А>- здесь про это написано. А>Хотя, в действительности, такое происходит только в Opera.
Ну дык, не используйте submit кнопку, используйте просто button с обработчиком onClick
Re[4]: Как отключить отправку формы по нажатию enter?
От:
Аноним
Дата:
14.03.06 21:43
Оценка:
Здравствуйте, Rumata, Вы писали:
R>Здравствуйте, Аноним, Вы писали:
А>>Помогло, но не совсем.
А>>Действительно, валидаторы работают везде. А>>Как определить, действительно ли нажата кнопка submit, а не enter на форме? А>>Я для этого использую переменную, которая сначала false, а при нажатии кнопки становится true. А>>Нажатие кнопки определяю по событию onclick и onkeydown на ней.
А>>Проблема в том, что при нажатии enter на форме вызывается событие onclick на submit кнопке. А>>http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onclick.asp?frame=true А>>- здесь про это написано. А>>Хотя, в действительности, такое происходит только в Opera. R>Ну дык, не используйте submit кнопку, используйте просто button с обработчиком onClick
А если javascript отключён?
Re[4]: Как отключить отправку формы по нажатию enter?
От:
Аноним
Дата:
14.03.06 22:39
Оценка:
Здравствуйте, Rumata, Вы писали:
R>Здравствуйте, Аноним, Вы писали:
А>>Помогло, но не совсем.
А>>Действительно, валидаторы работают везде. А>>Как определить, действительно ли нажата кнопка submit, а не enter на форме? А>>Я для этого использую переменную, которая сначала false, а при нажатии кнопки становится true. А>>Нажатие кнопки определяю по событию onclick и onkeydown на ней.
А>>Проблема в том, что при нажатии enter на форме вызывается событие onclick на submit кнопке. А>>http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onclick.asp?frame=true А>>- здесь про это написано. А>>Хотя, в действительности, такое происходит только в Opera. R>Ну дык, не используйте submit кнопку, используйте просто button с обработчиком onClick
Пока от безысходности реализовал это чрезвычайно тупым способом:
Здравствуйте, Аноним, Вы писали:
А>Используется что-то типа google suggest. На форме есть несколько input type=textbox-ов. При вводе значения, открывается табличка под input-ом с возможными вариантами. Вариант не вставляется сразу в textbox, как в google, а его надо выбрать самостоятельно. Варианты перебираются мышью или кнопками up/down. При клике на варианте или нажатии кнопки Enter должна произойти вставка варианта в textbox. Конечно, при нажатии Enter НЕ ДОЛЖНА происходить отправка всей формы!
Нам необходимо сделать всего три простых действия:
1) Блокировать всплывающее событие onsubmit
2) Вместо кнопки submit использовать button с событием onclick
3) Вынести кнопку за пределы формы, чтобы обмануть "умные" браузеры, типа Opera