Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Программно нажать Enter


Автор: Stereo 9.12.2010, 13:20
Есть необходимость программно нажать Enter в поле Input. Для submit формы. Другие варианты submit не предлагать. Пишу небольшой плагин, для лисы, страница отслеживает именно нажатие клавиши.

Автор: CruorVult 9.12.2010, 14:20
Код

<input ... onkeypress="checkButton(event)">


Код

function checkButton(e) {
if(e.keyCode==13)
alert("enter")
}

Автор: Stereo 9.12.2010, 15:48
Хоть бы задание почитали. Задача эмулировать нажатие Enter, а не перехватить нажатие пользователя.

Автор: CruorVult 9.12.2010, 16:25
Цитата(Stereo @  9.12.2010,  13:20 Найти цитируемый пост)
Есть необходимость программно нажать Enter 

Stereo,  ты хоть понял что написал?
события "нажатие Enter" нет, есть нажатие клавишы, лишь после нажатия можно отследить какая это именно клавиша.

Цитата(Stereo @  9.12.2010,  13:20 Найти цитируемый пост)
страница отслеживает именно нажатие клавиши.

каким именно образом? 
если хочешь помощи - опишы нормально задачу.


Автор: Stereo 9.12.2010, 16:49
Мне не нужно СЛЕДИТЬ ни за какими нажатиями ВООБЩЕ.
Надо нажать Enter, вместо пользователя.

Технически можно заставить JavaScrip/Браузер думать, что нажата клавиша хотя физически она не нажималась?

Автор: skyboy 9.12.2010, 17:44
http://www.google.com.ua/search?source=ig&hl=ru&rlz=1G1GGLQ_RUUA331&q=javascript+keydown+emulation+fireevent&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&aq=f&oq=

Автор: CruorVult 9.12.2010, 17:46
Код

    function  fireEvent(element,event){           
            if (document.createEventObject){
                // dispatch for IE
                var evt = document.createEventObject();
                return element.fireEvent('on'+event,evt)
            }
            else{

                // dispatch for firefox + others
                var evt = document.createEvent("KeyboardEvent");
                // create a key event
                evt.initKeyEvent(
                         event,             //  in DOMString typeArg,
                          true,             //  in boolean canBubbleArg,
                          true,             //  in boolean cancelableArg,
                          null,             //  in nsIDOMAbstractView viewArg,  Specifies UIEvent.view. This value may be null.
                          false,            //  in boolean ctrlKeyArg,
                          false,            //  in boolean altKeyArg,
                          false,            //  in boolean shiftKeyArg,
                          false,            //  in boolean metaKeyArg,
                           13,              //  in unsigned long keyCodeArg,
                           0);              //  in unsigned long charCodeArg);
                return !element.dispatchEvent(evt);
            }
        }


Добавлено через 1 минуту и 7 секунд
только в опере работать не будет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)