通过其属性名称获取选择框的值

时间:2015-05-20 03:28:15

标签: javascript jquery select

我有这个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]。任何线索或想法?

2 个答案:

答案 0 :(得分:2)

您只需使用$("select[name='test']").val()即可获得所选值

&#13;
&#13;
$("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;
&#13;
&#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元素的内容。