Javascript 输入变化
Javascript input change
是否可以更改键盘的输入值?
例如:
您按下键盘上的 a 键,但 b
将被输入到输入元素中,而不是 a
。
您键入 abc
但在输入元素中将是 def
.
我尝试捕获 keydown
事件,然后使用 CustomEvent
/ Event
触发 keydown
事件,但它对我不起作用。事件捕获很好,但是当我使用新的 charCode
或 keyCode
创建另一个 keydown
事件时, 'new' 字符将不会输入到输入中。
那么,是否可以在不使用 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)">
可能,这不可能通过这种方式实现,但目前我还没有其他想法...
使用以下代码在您键入内容时获取光标位置。获得光标位置后,您可以替换字符并将文本设置回文本框。让我知道您希望代码将光标放回替换字符的位置。
<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>
我找到了另一种方法 document.execCommand()
:
document.querySelector("input")
.addEventListener("keypress", function (event) {
event.preventDefault();
document.execCommand('insertText', false, 'b');
})
<input>
是否可以更改键盘的输入值?
例如:
您按下键盘上的 a 键,但 b
将被输入到输入元素中,而不是 a
。
您键入 abc
但在输入元素中将是 def
.
我尝试捕获 keydown
事件,然后使用 CustomEvent
/ Event
触发 keydown
事件,但它对我不起作用。事件捕获很好,但是当我使用新的 charCode
或 keyCode
创建另一个 keydown
事件时, 'new' 字符将不会输入到输入中。
那么,是否可以在不使用 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)">
可能,这不可能通过这种方式实现,但目前我还没有其他想法...
使用以下代码在您键入内容时获取光标位置。获得光标位置后,您可以替换字符并将文本设置回文本框。让我知道您希望代码将光标放回替换字符的位置。
<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>
我找到了另一种方法 document.execCommand()
:
document.querySelector("input")
.addEventListener("keypress", function (event) {
event.preventDefault();
document.execCommand('insertText', false, 'b');
})
<input>