以编程方式将密钥发送到输入字段?

时间:2009-09-24 15:31:18

标签: javascript html

我正在为带有自定义键盘的机顶盒编写门户网站。

键盘上有大部分标准字符键,但没有退格键!

由于还有其他一些免费的自定义键,我想在输入字段或文本区域中将其中一个映射到退格键。

问题是:如何以编程方式将退格发送到输入字段?

或者就此而言:如何以编程方式将任何密钥(如箭头键)发送到输入字段?

4 个答案:

答案 0 :(得分:6)

假设浏览器支持W3C事件模型,您可以创建KeyEvent并使用输入字段的dispatchEvent方法进行调度。 mozilla.org上有example (using MouseEvent)个结束。在where I last answered this question; - )

上还有一些链接

更新:以下代码已在Firefox 3.5中测试过,并成功通过文本字段中的字符退格:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>

<script type="text/javascript">

window.onload = function() {
    var field = document.getElementById("foo");
    var button = document.getElementById("bar");
    button.addEventListener("click", function(event) {
        var keyEvent = document.createEvent("KeyboardEvent");
        keyEvent.initKeyEvent("keypress", true, true, null, false, false, false, false, 8, 0);
        field.dispatchEvent(keyEvent);
    }, false);
}

</script>

</head>
<body>
<div>
<input type="text" id="foo" value="abcdef">
<button id="bar" type="button">Fire key event</button>
</div>
</body>
</html>

答案 1 :(得分:1)

如果您使用的是网络浏览器,则无法伪造键盘和鼠标事件等实际输入事件(出于安全原因)。

但是,您将能够检测到正在按下的其他自定义键,因此您可以响应要使用的键的onKeyDown事件,并在检测到按下时更新输入字段...

答案 2 :(得分:-3)

使用onkeypress和JavaScript。在脚本中,您可以检查输入的字符是否映射到退格,并使其对字段中的文本执行该操作。

答案 3 :(得分:-4)

这不是你要求的,但在大多数情况下,Control-H与退格相同。