I'm trying to write a code in Javascript, which should set the cursor focus on the input textbox and should trigger a "keypress" event which should set key, say letter 'A' in the textbox.
How to do it? I read we can achieve using createEvent
and dispatchEvent
. Any Suggestions?
Try this
<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>
Anyways Entered key will be available in text field, no need to set it explicitly.