触发选择表单元素以使用Javascript显示其选项(打开下拉选项列表)

Sav*_*iou 7 javascript jquery select

这是标记

<select id="person_prefix" name="prefix">
 <option value=""></option>
 <option value="Dr" selected="selected">Dr</option>
 <option value="Mr">Mr</option>
 <option value="Ms">Ms</option>
 <option value="Mrs">Mrs</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想触发一个javascript事件,以便选项列表下降.使用jquery我尝试了以下内容:

$("#person_prefix").click();
$("#person_prefix").mousedown();
$("#person_prefix").change();
Run Code Online (Sandbox Code Playgroud)

但似乎没什么用.这是哪个事件以及如何触发?

谢谢

Mar*_* Uy 7

我曾经一直在寻找如何做同样的事情并没有找到任何可行的解决方案但是我们的javascript小组中的一个人带来了一个聪明的工作.这是代码.

HTML

<input type="button" id="show" value="show" />
<select id="myslect">
    <option>nothing</option>
    <option>something</option>
    <option>anything</option>
</select>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

$("#show").click(function () {
    var element = $("select")[0],
        worked = false;
    if(document.createEvent) { // chrome and safari
        var e = document.createEvent("MouseEvents");
        e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        worked = element.dispatchEvent(e);
    }
    if(!worked) { // unknown browser / error
        alert("It didn't worked in your browser.");
    }
});
Run Code Online (Sandbox Code Playgroud)

我不知道如何链接到组帖子,所以你可以看到整个帖子.无论如何归功于CJ Madolara.做得好!

更新: 仅适用于Chrome和Safari


Nic*_*ver 4

您无法以编程方式执行此跨浏览器操作。您可以用完全自定义的解决方案替换下拉列表,而不实际显示元素<select>...但您不能以编程方式显示它,尤其是在 IE 中。

您可以做的最接近操作是通过以下方式将用户移动到元素.focus()

$("#person_prefix").focus();
Run Code Online (Sandbox Code Playgroud)

当焦点 ( :focus) 被聚焦时,加上一些 CSS 样式通常是吸引注意力的好方法。