如何使用JavaScript从下拉列表中获取所选值?

<表单><select id=“ddlViewBy”><option value=“1”>test1</option><option value=“2”selected=“selected”>test2</option><option value=“3”>test3</option></选择></form>


当前回答

以下是JavaScript代码行:

var x = document.form1.list.value;

假设下拉菜单名为list name=“list”,并包含在name属性name=“form1”的表单中。

其他回答

Try

ddlViewBy.value                      // value

ddlViewBy.selectedOptions[0].text    // label

console.log(ddlViewBy.value);console.log(ddlViewBy.selectedOptions[0].text);<select id=“ddlViewBy”><option value=“1”>快乐</option><option value=“2”>树</option><option value=“3”selected=“selected”>朋友</option></选择>

在更现代的浏览器中,querySelector允许我们使用:checked伪类在一条语句中检索所选选项。从所选选项中,我们可以收集所需的任何信息:

const opt=document.querySelector(“#ddlViewBy选项:选中”);//opt现在是选定的选项,因此console.log(opt.value,'是所选值');console.log(opt.text,“是所选选项的文本”);<select id=“ddlViewBy”><option value=“1”>test1</option><option value=“2”selected=“selected”>test2</option><option value=“3”>test3</option></选择>

有一个解决方法,使用EasyUI框架及其所有插件。

您只需要在下拉菜单中添加一些EasyUI对象,该对象可以作为“桥”从输入中读取。

示例:easyui搜索框

左边是下拉列表,右边是easyui搜索框:

...
<input id="ss" class="easyui-searchbox" style="width:300px"
        data-options="  searcher:my_function,
                        prompt:'Enter value',
                        menu:'#mm'">
<div id="mm" style="width:200px">
    <div data-options="name:'1'">test1</div>
    <div data-options="name:'2'">test2</div>
</div>
...
...
<script type="text/javascript">
    function my_js_function(triggeredByButton = false){
        // normal text of the searchbox (what you entered)
        var value = $("#ss").searchbox("getValue");
        // what you chose from the drop-down menu
        var name = $("#ss").searchbox("getName");
...

注意:var名称是“1”或“2”,即“下拉列表的值”,而var值是在easyui搜索框中输入的值,如果您只想知道下拉列表的数值,则不相关。

我检查了EasyUI如何获取这个#mm名称,如果没有EasyUI的帮助,我无法找到如何获取这个名称。getName后面的jQuery:

getName:function(jq){
return $.data(jq[0],"searchbox").searchbox.find("input.textbox-value").attr("name");
}

注意,此函数的返回不是easyui搜索框的值,而是用作easyui查询框菜单参数的#mm下拉列表的名称。不知何故,EasyUI必须获得其他值,因此它必须是可能的。

如果您不想看到任何插件,请尽可能缩小它?或者在上面的链接中找到一个根本不需要表单的插件,我只是没有花时间。

Use:

<select id="Ultra" onchange="alert(this.value)">
    <option value="0">Select</option>
    <option value="8">text1</option>
    <option value="5">text2</option>
    <option value="4">text3</option>
</select>

从元素内部访问任何输入/表单字段时,都可以使用“this”关键字。这样就不需要在DOM树中查找表单,然后在表单中查找该元素。

另一种解决方案是:

document.getElementById('elementId').selectedOptions[0].value