问题描述:

我想从选择选项文本(而不是选项值)在HTML和JavaScript中的值?如何从<select><选项...中选择特定的文本值?

一旦我能够得到该值,我想要得到如下所示的特定字符串。

值为2.500,文本选项值为250奖金。我想获得250并分配自己的输入隐藏值。

感谢

+0

代码...? – 2013-04-20 02:44:19

+3

“就像下面的那个”?哪一个。我们没有看到任何东西 – SomeShinyObject 2013-04-20 02:46:08

好了,从你给什么,我可以猜测,你需要得到该选项的文本。

function getSelectedText(elementId) { 
    var elt = document.getElementById(elementId); 

    if (elt.selectedIndex == -1) 
     return null; 

    return elt.options[elt.selectedIndex].text; 
} 

用这样的方式:

var text = getSelectedText('selectID'); 

或者为Derek建议,你可以把它在一个太行:

var text = elementId.querySelector("option:checked").innerText 

注:这只有在现代浏览器。

+0

[One line](http://jsfiddle.net/DerekL/uj6Jw):'elementId.querySelector(“option:checked”)。innerText' – 2013-04-20 02:47:56

+0

@Derek*谢谢。和你一起更新答案!顺便说一下,'querySelector'只适用于现代浏览器吗? – 2013-04-20 02:49:27

+0

它适用于> IE7。 [参考](http://caniuse.com/queryselector) – SomeShinyObject 2013-04-20 02:50:30

<form action="#"> 
<input type="hidden" name="bonus_hidden" value="" /> 
<select name="b" onchange="document.forms[0].elements['bonus_hidden'].value=document.forms[0].elements['b'].options[document.forms[0].elements['b'].selectedIndex].text"> 
<option value="1.000">100 bonus</option> 
<option value="1.500">150 bonus</option> 
<option value="2.000">200 bonus</option> 
<option value="2.500">250 bonus</option> 
</select> 
</form>