0

入力テキストボックスにカーソルフォーカスを設定し、キーを設定する必要がある「キープレス」イベントをトリガーする必要があるJavascriptでコードを記述しようとしています。

どうやってするの?createEventと を使用して達成できることを読み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 に答える