我正在尝试用 Javascript 编写代码,它应该将光标焦点设置在输入文本框上,并应该触发一个“keypress”事件,该事件应该设置键,比如文本框中的字母“A”。
怎么做?我读到我们可以使用createEvent
and来实现dispatchEvent
。有什么建议么?
我正在尝试用 Javascript 编写代码,它应该将光标焦点设置在输入文本框上,并应该触发一个“keypress”事件,该事件应该设置键,比如文本框中的字母“A”。
怎么做?我读到我们可以使用createEvent
and来实现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>
无论如何,输入的键将在文本字段中可用,无需明确设置。