javascript - 如何使用createEvent和dispatchEvent设置焦点并设置输入文本中的文本?

标签 javascript html dom-events keyboard-events html.textboxfor

我正在尝试用 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/

相关文章:

javascript - 从 Handsontable Jquery 加载数据

Javascript 将所有文本节点包装在标签中

html - 垂直对齐不同大小的字体

html - [...] 的标签不被 IE8 识别

javascript - 检索索引 ul li 列表

javascript - jquery 的网站加载问题?

javascript - 浏览器中的混合内容检测是否适用于通过 AJAX 传递的数据?

javascript - Word 相位变化,CSS 垂直动画循环

html - 可靠地检测用户是否在网页上使用鼠标?

javascript - Dropdownlist的Onchange事件