0

我正在尝试用 Javascript 编写代码,它应该将光标焦点设置在输入文本框上,并应该触发一个“keypress”事件,该事件应该设置键,比如文本框中的字母“A”。

怎么做?我读到我们可以使用createEventand来实现dispatchEvent。有什么建议么?

4

1 回答 1

1

试试这个

<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>

无论如何,输入的键将在文本字段中可用,无需明确设置。

于 2016-05-30T05:06:49.063 回答