使用jQuery获取下拉列表项的选定值

shy*_*yam 425 jquery

如何使用jQuery获取下拉框的选定值?
我试过用

var value = $('#dropDownId').val();
Run Code Online (Sandbox Code Playgroud)

var value = $('select#dropDownId option:selected').val();
Run Code Online (Sandbox Code Playgroud)

但两者都返回一个空字符串.

Pet*_*McG 808

对于单选dom元素,要获取当前选定的值:

$('#dropDownId').val();
Run Code Online (Sandbox Code Playgroud)

要获取当前选定的文本:

$('#dropDownId :selected').text();
Run Code Online (Sandbox Code Playgroud)

  • 获取所选选项文本的**最快**方式是:`$("#dropDownId").children("option").filter(":selected").text()` (51认同)
  • 在`:selected`之前你需要一个空格. (10认同)
  • 理查德,你的代码太长了......它的可读性可以更加简洁 (8认同)
  • 我希望你链接到`.val()`和`.text()`的引用 (3认同)
  • @JamesM.Lay存储在变量中的DOM引用?然后使用``jQuery(domVariable).val()`` (2认同)

Nic*_*eve 57

var value = $('#dropDownId:selected').text()
Run Code Online (Sandbox Code Playgroud)

应该工作正常,请看这个例子:

$(document).ready(function(){ 
  $('#button1').click(function(){ 
    alert($('#combo :selected').text());
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="combo">
  <option value="1">Test 1</option>
  <option value="2">Test 2</option>
</select>
<input id="button1" type="button" value="Click!" />
Run Code Online (Sandbox Code Playgroud)

  • "值"是大多数编码人员错过的,而声明元素和查询则继续返回文本 (4认同)

Luc*_*cky 22

试试这个jQuery,

$("#ddlid option:selected").text();
Run Code Online (Sandbox Code Playgroud)

或者这个javascript,

 var selID=document.getElementById("ddlid");
 var text=selID.options[selID.selectedIndex].text;
Run Code Online (Sandbox Code Playgroud)

如果您需要访问值而不是文本,请尝试使用val()方法而不是text().

查看以下小提琴链接.

演示1 | DEMO2


Kva*_*tar 14

试试这个

$("#yourDropdown option:selected").text();
Run Code Online (Sandbox Code Playgroud)


Dev*_*One 12

我知道这是一个非常古老的帖子,我可能会因为这次可怜的复活而被鞭打,但我想我会分享一些非常有用的小JS片段,我在我的武器库中的每个应用程序中都会使用这些片段...

如果输入:

$("#selector option:selected").val() // or
$("#selector option:selected").text()
Run Code Online (Sandbox Code Playgroud)

越来越老,尝试将这些小碎片添加到您的全局*.js文件中:

function soval(a) {
    return $('option:selected', a).val();
}
function sotext(a) {
    return $('option:selected', a).text();
}
Run Code Online (Sandbox Code Playgroud)

只是写soval("#selector");sotext("#selector");代替!通过组合两者并返回包含value和两者的对象来获得更高级的体验text!

function so(a) {
    my.value = $('option:selected', a).val();
    my.text  = $('option:selected', a).text();
    return my;
}
Run Code Online (Sandbox Code Playgroud)

它为我节省了大量宝贵的时间,特别是在重型应用上!


Uth*_*iah 9

这将提醒所选值.JQuery代码......

$(document).ready(function () {

        $("#myDropDown").change(function (event) {
            alert("You have Selected  :: "+$(this).val());
        });
    });
Run Code Online (Sandbox Code Playgroud)

HTML代码...

<select id="myDropDown">
        <option>Milk</option>
        <option>Egg</option>
        <option>Bread</option>
        <option>Fruits</option>
    </select>
Run Code Online (Sandbox Code Playgroud)


J S*_*ick 8

又一个测试的例子:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
    $('#bonus').change(function() {
    alert($("#bonus option:selected").text());
  });  
});
</script>
</head>

<body>
<select id="bonus">
<option value="1">-$5000</option>
<option value="2">-$2500</option>
<option value="3">$0</option>
<option value="4">$1</option>
<option value="5">We really appreciate your work</option>
</select>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


Sin*_*ton 7

这将成功

$('#dropDownId').val();
Run Code Online (Sandbox Code Playgroud)


Âng*_*igo 5

试试这个,它得到的值:

$('select#myField').find('option:selected').val();