是否可以使用 JavaScript 打开 HTML 选择以显示其选项列表?
是否可以使用 JS 打开 HTML 选择以显示其选项列表?
IT技术
javascript
html-select
2021-02-02 21:27:21
6个回答
不幸的是,这个问题有一个简单的答案,它是“否”
我遇到了这个问题……并找到了一个可行的解决方案。
在用户单击一些纯 HTML 之前,我不希望选择框显示。所以我用opacity=.01
. 单击后,我将其改回opacity=100
. 这允许我隐藏选择,当用户单击文本时,选择出现并显示选项。
这适用于谷歌浏览器
dropDown = function (elementId) {
var dropdown = document.getElementById(elementId);
try {
showDropdown(dropdown);
} catch(e) {
}
return false;
};
showDropdown = function (element) {
var event;
event = document.createEvent('MouseEvents');
event.initMouseEvent('mousedown', true, true, window);
element.dispatchEvent(event);
};
我用这个...但它需要用户点击选择框...
这是 2 个 javascript 函数
function expand(obj)
{
obj.size = 5;
}
function unexpand(obj)
{
obj.size = 1;
}
然后我创建选择框
<select id="test" multiple="multiple" name="foo" onFocus="expand(this)" onBlur="unexpand(this)">
<option >option1</option>
<option >option2</option>
<option >option3</option>
<option >option4</option>
<option >option5</option>
</select>
我知道这段代码有点晚了,但我希望它可以帮助和我有同样问题的人。
ps/fyi 我没有测试上面的代码(我动态创建了我的选择框),我写的代码只在 FireFox 中测试过。
在尝试解决这个问题一段时间后,我设法提出了一个有效的解决方案:
var event = new MouseEvent('mousedown');
element.dispatchEvent(event);
我也尝试在 Jquery 中实现这一点,使用trigger
andmousedown
或 onlymousedown
但没有成功。