【发布时间】:2016-06-18 14:55:33
【问题描述】:
可以改变键盘的输入值吗?
例如:
您按下键盘上的 a 键,但输入元素中将输入b,而不是a。
您输入abc,但在输入元素中将是def。
我尝试捕获keydown 事件,然后使用CustomEvent / Event 触发keydown 事件,但这对我不起作用。事件捕获很好,但是当我使用新的 charCode 或 keyCode 创建另一个 keydown 事件时,不会在输入中输入“新”字符。
那么,是否可以在不使用value 属性或任何其他处理或修改输入的全部内容的方法的情况下将某些内容写入到插入符号的位置的输入元素中。所以只需插入或粘贴一个字母。
JS
function keydown(e) {
e.preventDefault();
var event = new Event('keydown');
event.charCode = 65;
element.dispatchEvent(event);
}
HTML
<input type="text" onkeydown="keydown(event)">
可能,这种方式是不可能的,但到目前为止我还没有任何其他想法......
【问题讨论】:
-
@Gothdo:他们什么时候不再允许这样做了?
-
@Gothdo 好的,但是否有任何其他可能性,例如:将文本粘贴到插入符号或所选区域?
-
@Gothdo:该页面上的任何答案都可以在 chrome 中使用吗?我刚刚尝试了几个没有运气......我曾经有工作的代码,它也停止了......
-
@dandavis This 可能是最新的答案。事实证明我是对的,键盘事件不能用 JavaScript 触发。
标签: javascript keyboard dom-events contenteditable