我想从javascript调用默认的keydown事件处理程序。有可能吗?
答案 0 :(得分:2)
如果事件具有显式事件处理程序,则可以直接调用它:
// Precondition - the element has an explicit handler registered
element.onkeydown();
否则,没有办法明确告诉浏览器“无论如何都要做”。实现这一目标的唯一方法是不要阻止事件冒泡 - 如果您想设置超时然后允许事件继续,这可能是一个真正的痛苦,这基本上是不可能的。
但是,在大多数情况下,您可以在事件处理程序上调用自己的代码,并让keyDown事件继续到浏览器。如果由于某种原因这是不可能的,你通常可以编写自己的方法来模拟事件的效果(例如,更改输入字段的内容,提交表单等)。
答案 1 :(得分:0)
没有默认的keydown事件。在任何表单元素上按下键时会发生keydown事件,紧接着是按下按键事件,并且在输入值时可能是文本框上的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>