我有这个HTML
<select name="test">
<option value="" selected disabled>please select</option>
<option value="option1">option 1</option>
<option value="option2">option 2</option>
</select>
我尝试在选择框中获取当前所选选项的名称为“value”的属性的方式是(假设我已经选择了选项1):
alert($("select[name='test'] option:selected", this).val());
但它会返回[object object]
。任何线索或想法?
答案 0 :(得分:2)
您只需使用$("select[name='test']").val()
即可获得所选值
$("select[name='test']").change(function() {
alert($(this).val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select name="test">
<option value="" selected disabled>please select</option>
<option value="option1">option 1</option>
<option value="option2">option 2</option>
</select>
&#13;
答案 1 :(得分:1)
选择框的value属性来自所选选项的value属性或select-multiple类型选择框中的第一个选定选项。因此,可以使用JavaScript获取所选选项的值,如下所示:
// reference to 'category' select list in 'demoForm'
var sel = document.forms['demoForm'].elements['category'];
// value property of select list (from selected option)
var val = sel.value;
如果option元素不包含value属性,则option元素的文本内容通常是value属性。但是,版本9之前的Internet Explorer在这种情况下不会提供值。如果您的选项元素不包含值属性,并且您希望支持旧浏览器,那么为了获得最佳结果,请使用旧式方法来引用所选选项并访问其文本属性:
// access text property of selected option
var val = sel.options[sel.selectedIndex].text;
选择列表的options属性是其中包含的所有选项元素的节点列表。选择列表的selectedIndex属性指定节点列表中所选选项的位置。选项的text属性是option元素的内容。