Как симулировать нажатие клавиши?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как симулировать нажатие клавиши? Expand / Collapse
Автор
Сообщение
08.11.2006 16:41
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.03.2008 16:02
Сообщ.: 693, Visits: 7 080
В Visual Basic имеется функция SendKey(код клавиши), который программно "нажимает" заданную клавишу.

А как это сделать в JavaScript?

Спасибо!
Евгений Боуден

Сообщ. #907079
08.11.2006 16:57
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Зачем?
Сообщ. #907080
08.11.2006 17:44
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.03.2008 16:02
Сообщ.: 693, Visits: 7 080
Мне нужно чтобы пользователь (введя изменения в некоем элементе формы) нажал Enter и страница ушла на сервер. Но эти паразиты иногда вместо этого нажимают Таб или вообще мышкой уходят из элемента. Вот я и хочу на оnblur программно нажать Enter.

Спасибо!
Евгений Боуден
Сообщ. #907082
08.11.2006 17:55
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Для этого симуляция нажатия Enter совсем не нужна. Достаточно вызвать sumbit() для объекта формы. Кроме того по моему отправка формы при потере фокуса ввода плохая идея. Что если пользователь захочет временно переместить фокус на другое поле (к примеру, скопировать текст имеющийся на странице)? Форма будет отправлена хотя он этого не ожидал.
Сообщ. #907083
08.11.2006 18:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.03.2008 16:02
Сообщ.: 693, Visits: 7 080

document.getElementById("Form1").confirm();

Пытаюсь сделать это так - не проходит. Сообщает, что объект не поддерживает данный метод.

Насчет неожиданного ухода - я это знаю, но пока другого выхода не придумал.



Спасибо!
Евгений Боуден
Сообщ. #907084
08.11.2006 18:18
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.03.2008 16:02
Сообщ.: 693, Visits: 7 080
Идиот я. Submit(), а не confirm()

Спасибо!
Евгений Боуден
Сообщ. #907085
08.11.2006 19:01
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 25.04.2007 11:57
Сообщ.: 77, Visits: 97
А вопрос все же интересный. Насколько я понимаю можно на onKeyPress или onkeyup подставлять вместо того что нажато то что нам нужно, но как сделать нажатие если пользователь ничего не нажимал? Я не нащел метода нажатия кнопки, такой вообще есть?
Сообщ. #907089
08.11.2006 19:28
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
evgenybe

document.name_form.submit();

или

<form name="name_form" onsubmit="Function_proverki_pered_otpravkoy()" action="index.php" method="post">


DarkSet
Например можно использовать метод click();  Хотя полно ценного нажатия клавиши вроде нету, но оно и не нужно, ибо нет того чего нельзя сделать без этого или оно просто не кому не нужно. =)

click Method


Simulates a click by causing the onclick event to fire.

Syntax

object.click()

Return Value

No return value.

Remarks

Note  Simulating a click using the click does not bring the element being clicked into focus. (See example below).

Example

The following example demonstrates how simulating a click using the click does not, by default, bring the element into focus.

Hide Example

<HTML><HEAD><SCRIPT>function simclick1(){chk1.focus(); //focus is explicitly setchk1.click();}function simclick2(){chk1.click();}</SCRIPT><SCRIPT FOR=chk1 EVENT=onfocus>alert("check box is in focus!");</SCRIPT></HEAD><BODY><P STYLE="font-family:sans-serif;font-weight:bold">DEMO: USING CLICK METHOD DOES NOT SET FOCUS<P><UL STYLE="color:blue;font-family:sans-serif;font-weight:bold"><LI>Both these buttons apply the click method to the check box. </LI><LI>An alert has been set to fire when the check box is put into focus. </UL></PLI><INPUT Type="CHECKBOX" id=chk1></INPUT><br><BUTTON onclick="simclick1()">This button <B>applies the focus method</B> to check box</BUTTON><br><BUTTON onclick="simclick2()">This button <B>does not apply the focus method</B> to check box</BUTTON><br></BODY></HTML>


----------------------------------
Я безработный...
Возьмите меня на работу. =)
Сообщ. #907090