Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как отловить нажатие клавиши Enter, запретить отправку формы по Enter 
:(
    Опции темы
slang
Дата 22.2.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: -1
Всего: 0



понимаю, что в той или иной мере этот вопрос поднимался на форуме не однажды, но к сожалению, из того, что нашел через поиск сделать готовое решение не смог (мозгов не хватило), а очень мне не нравится, что тетушка, заполняющая форму часто нажимает на Enter для перехода к следующему полю формы :(


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
awers
Дата 22.2.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



подумай на тему 
Код

<form onsubmit="return forward_focus(this);">
....

ну а в функции forward_focus смотреть, если всё заполнено — отправить (return true), иначе перевести фокус и return false
PM MAIL WWW ICQ Skype   Вверх
slang
Дата 22.2.2009, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: -1
Всего: 0



awers, да мне собственно не нужно проверять все заполнено или нет (вся форма заполненая не будет сроду), а вот запретить отправлять по нажатию Enter нужно.
При этом такой подход не запрещает отправить форму по Enter :(, если вдруг все необходимые поля заполнены...
например, форма: сверху контактные данные, а дальше идет список товаров, доступных для заказа с полями количество...
так вот в такой форме человек искренне заполняет шапку (минимум требуемый), а потом после первого же пункта номенклатуры нажимает на Enter и отправляет заявку, хотя мечтал заказать ещё 28 наименования smile
при этом при нажатии на кнопку в некоторых полях формы используется другая функция, которая заменяет - и , на . (ну там дробные числа, дата).
Могбы засунуть проверку Enter в эту функцию, но она используется не во всех полях

Это сообщение отредактировал(а) slang - 22.2.2009, 20:47


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
ksnk
Дата 22.2.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



slang, А как отправляется форма? По нажатию мышой на кнопке? Дык тогда так и писать
Код

<form onsubmit="return false;">
...
<input type="submit" onclick="this.form.onsubmit='';">
....
</form>



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
awers
Дата 22.2.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



<form onsubmit="return false">
PM MAIL WWW ICQ Skype   Вверх
slang
Дата 23.2.2009, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: -1
Всего: 0



<form onsubmit="return false">

так к сожалению, не плучается, так как кнопка submit выделена по умолчанию, вероятно, но по Enter все равно форма отправляется :(
наверное, придется использовать подтверждение со стороны пользователя, типа "Вы действительно хотите отправить форму?"


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Soah
Дата 23.2.2009, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: 13
Всего: 54



Код

<script type="text/javascript">
    var isPressEnter = false;
    
    function controlKey(obj, event) 
    {
        event = event || window.event;
        var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : null;
        
        if (keyCode == 13) {
            isPressEnter = true;
        }
    }
    
    function controlForm()
    {
        var s = isPressEnter;
        isPressEnter = false;
        
        return !s;
    }

</script>

<form onsubmit="return controlForm();" method="post">
    <input type="text" id="log" onkeydown="controlKey(this, event);" />
    <input type="text" id="pas" onkeydown="controlKey(this, event);" />
    <input type="submit" value="send" />
</form>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.