通常我使用$(“#id”).val()来返回所选选项的值,但这一次它不起作用。 所选标记的id为aioConceptName

html代码

<label for="name">Name</label>
<input type="text" name="name" id="name" />

<label for="aioConceptName">AIO Concept Name</label>
<select id="aioConceptName">
    <option>choose io</option>
    <option>roma</option>
    <option>totti</option>
</select>

当前回答

你考虑过使用普通的javascript吗?

var box = document.getElementById('aioConceptName');

conceptName = box.options[box.selectedIndex].text;

参见使用JavaScript获取一个选项文本/值

其他回答

您可以使用精确选择的选项进行选择: 下面将给出innerText

$("select#aioConceptName > option:selected").text()

而下面将给你价值。

$("select#aioConceptName > option:selected").val()

我也有同样的问题,我想知道为什么它对我的案子不起作用 html页面被划分为不同的html片段,我发现我有另一个输入字段携带相同的Id的选择,这导致val()总是空的 我希望这能拯救那些有类似问题的人。

对于下拉选项,你可能想要这样的东西:

对于选定的文本

var conceptName = $('#aioConceptName').find(":selected").text();

对于所选值

var conceptName = $('#aioConceptName').find(":selected").val();

val()没有做到这一点的原因是,单击一个选项并不会改变下拉列表的值——它只是将:selected属性添加到作为下拉列表子项的selected选项中。

你可以试试这个:

var ioConceptName = $('#ioConceptName option:selected').text(); 

你应该使用这样的语法:

var value = $('#Id :selected').val();

所以试试下面的代码:

var values = $('#aioConceptName :selected').val();

你可以在Fiddle中测试:http://jsfiddle.net/PJT6r/9/

在这篇文章中看到这个答案