如何获取HTML下拉框的内容?

时间:2012-10-18 00:58:30

标签: javascript jquery forms dom drop-down-menu

我有一个下拉列表作为表单的一部分。它将JavaScript函数称为其动作,其内容是多个字符串之一。

在该函数中,我需要获取用户选择的字符串。我遇到了一个函数,它让我得到所选项目的索引号,但由于列表的内容可能会有所不同,所以它实际上是无用的。是否有一种方法可以让我获得用户输入的实际字符串,可能是使用DOM和getElementById(),还是使用JQuery?

我考虑使用文本字段,但这会带来与界面相关的错误的可能性。

2 个答案:

答案 0 :(得分:1)

不太确定你想要什么,但根据我的理解this is it

<强> HTML

<select>
    <option value="1">This is the first one</option>
    <option value="2">This is the second one</option>
</select>

<强>的Javascript

$('select').on('change', function() {
    alert($(this).find('option:selected').text());
})

答案 1 :(得分:0)

修改 您似乎想要选项的文本,而不是值。

第二次修改 在OP中使用Rob的建议,所以我们不需要迭代。

HTML

​<select name="myselect" id="myselect">
  <option value="alpha">one</option>
  <option value="beta">two</option>
  <option value="gamma">three</option>
</select>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

JS

var mySelect = document.getElementById('myselect')​​​; //get our select by its ID
mySelect.addEventListener('change', function(evt){
   return evt.target.options[evt.target.selectedIndex].text;  
});

请注意, addEventListener 在Internet Explorer 8及更低版本上不起作用,因此您需要使用 attachEvent 。这应该会给你一个很好的主意。 如需进一步参考,请参阅https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener