触发 html5 输入数据列表下拉列表显示
Trigger html5 input datalist dropdown to show up
在<datalist>
具有预定义值的HTML5 <input>
元素中,当用户输入匹配值或按向下键时,将显示下拉列表。
有没有办法触发此下拉列表显示?我可能会在 Angular 中动态更改datalist
,因此希望有一种方法来触发此列表的显示。
<input list="browsers" name="browser">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
是的,我们可以:
var keyboardEvent = document.createEvent("KeyboardEvent");
var initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
keyboardEvent[initMethod](
"keyup", // 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
);
document.getElementById("test").focus();
document.getElementById("test").dispatchEvent(keyboardEvent);
<input id="test" list="browsers" name="browser">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
使用dispatchEvent
和createEvent
。受IE9+,Chrome和FF支持。
相关文章:
- 突出显示列表的父项,但不突出显示所有子项
- 如何随机显示列表项的顺序
- 引导程序下拉列表显示不正确
- 在underscore.js中显示列表中的所有项目(使用Parse.com)
- 使自动完成可搜索下拉菜单don'我不想在点击搜索时显示列表
- 用javascript在html显示列表中显示新成员
- 使用2个下拉列表显示/隐藏分区
- 单击旧列表只显示上次创建的id,应在单击时显示列表id
- 条件过滤列表显示在angularjs中
- Ember-解决所有请求时显示列表
- 隐藏并显示列表中的元素
- 仅在单击下拉列表中的项目时显示列表框
- Ui自动完成不显示列表
- 单击按钮时隐藏并显示列表
- 在可滚动的库中显示列表
- 如果字符串位于iframe之后,则不会使用引导程序列表显示
- 无序列表 jQuery 在固定位置显示列表中的选定项
- 触发 html5 输入数据列表下拉列表显示
- AngularJS 10 $digest() 迭代在列表显示时达到
- AngularJS在URL正下方显示列表