是否可以更改键盘的输入值?
例如:
您按键盘上的ti.map
键,但a
将输入到输入元素,而不是b
。
您输入a
但在输入元素中将是abc
。
我尝试捕获def
事件,然后使用keydown
/ CustomEvent
触发keydown事件。但它对我没有用。事件捕获很好但是当我使用新的Event
或keydown
新的'来创建其他charCode
事件时字符不会被输入输入。
那么,是否可以在输入元素中将某些内容写入插入符的位置,而不使用keyCode
属性或任何其他处理或修改输入内容的方法。所以只需插入或粘贴一封信。
JS
value
HTML
function keydown(e) {
e.preventDefault();
var event = new Event('keydown');
event.charCode = 65;
element.dispatchEvent(event);
}
可能这样做是不可能的,但到目前为止我还没有其他任何想法......
答案 0 :(得分:1)
我找到了使用document.execCommand()
执行此操作的另一种方法:
document.querySelector("input")
.addEventListener("keypress", function (event) {
event.preventDefault();
document.execCommand('insertText', false, 'b');
})
<input>
答案 1 :(得分:0)
使用以下代码在键入内容时获取光标位置。获得光标位置后,您可以替换该字符并将文本设置回文本框。让我知道你想要代码将光标放回到替换字符的位置。
<script type="text/javascript">
function getLocation(ctrl)
{
var position = 0;
if (document.selection) {
ctrl.focus ();
var sel = document.selection.createRange ();
sel.moveStart ('character', -ctrl.value.length);
position = Sel.text.length;
}
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
position = ctrl.selectionStart;
alert (position);
}
</script>
<input type="text" onkeyup="getLocation(this);"></input>