2009-12-21 3 views
0

Я хотел бы вызвать обработчик события keydown по умолчанию из javascript. Является ли это возможным?Javascript: invoke default keydown обработчик события

+1

что является значением по умолчанию обработчик события keydown? На каком элементе? Зачем? – Marius

+1

Не 100% то же самое, но связанное сообщение SO здесь: http://stackoverflow.com/questions/202285/trigger-a-keypress-with-jquery-and-specify-which-key-was-pressed –

+0

>> Нет 100% то же самое, но связанное сообщение SO здесь: stackoverflow.com/questions/202285/ okw, thank. –

ответ

2

Если событие имеет явный обработчик событий вы можете просто вызвать его непосредственно:

// Precondition - the element has an explicit handler registered 
element.onkeydown(); 

В противном случае, нет никакого способа, чтобы явно указать браузеру, чтобы сделать «что он сделал бы в любом случае». Единственный способ добиться этого - не остановить событие от пузырьков - что может быть настоящей болью, если вы хотите установить тайм-аут, а затем позволить событию продолжить, это существенно невозможно.

В большинстве случаев вы можете вызвать свой собственный код в обработчике событий и продолжить событие keyDown в браузере. И если это не по какой-либо причине, вы можете обычно написать свой собственный метод, который будет имитировать эффекты события (например, изменить содержимое поля ввода, отправить форму и т. Д.)

0

Не существует события по умолчанию для разблокировки. Событие keydown происходит, когда клавиша нажата на любые элементы формы, после чего сразу происходит событие keypress и, возможно, событие textInput в текстовом поле при вводе значения. Затем событие keyup генерируется при освобождении ключа В следующем примере показано использование обработчика события onKeyDown для отображения сообщения в текстовом поле.

<body><form action="" method="POST" id="myForm"><input type="text" name="myText" onKeyDown="changeVal()"><script type="text/javascript" language="JavaScript">s1 = new String(myForm.myText.value)function changeVal() { s1 = "You pressed a key" 
myForm.myText.value = s1.toUpperCase() }</script></form></body> 
Смежные вопросы