我正在尝试用 Javascript 编写代码,该代码应将光标焦点设置在输入文本框中,并应触发一个“按键”事件,该事件应设置键,例如文本框中的字母“A”。
怎么做呢?我读到我们可以使用 createEvent
来实现和dispatchEvent
。有什么建议吗?
最佳答案
试试这个
<input type="text" id="input-field" />
<script>
var addData = function(data){
var field = document.getElementById("input-field")
field.value = document.getElementById("input-field").value+data;
var keyboardEvent = document.createEvent("KeyboardEvent");
var initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
keyboardEvent[initMethod](
"keypress", // event type : keydown, keyup, keypress
true, // bubbles
true, // cancelable
window, // viewArg: should be window
false, // ctrlKeyArg
false, // altKeyArg
false, // shiftKeyArg
false, // metaKeyArg
40, // keyCodeArg : unsigned long the virtual key code, else 0
0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0
);
field.dispatchEvent(keyboardEvent);
}
var registerEvents = function(){
document.getElementById("input-field").addEventListener("keypress",function(event){
alert("Key Pressed : "+ event.target.value)
});
}();
addData("a");
addData("b");
</script>
无论如何,输入的 key 将在文本字段中可用,无需明确设置。
关于javascript - 如何使用createEvent和dispatchEvent设置焦点并设置输入文本中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517888/