如何在javascript中获取选择值?

时间:2013-07-29 22:28:52

标签: javascript dom

以下是我的代码。我希望div在选中时显示,但是,当我按提交时,会出现undefined这个词,而不是我想要的词。

当我使用=代替==时,例如if(age="toddlers"),所有选定选项都会显示"Bring to picnic"个句子。

因此,我怀疑这是因为我没有正确读取数值。我试过了

if (document.getElementsByTagName('option') == "toodlers")

它完全不起作用。我刚开始学习HTML,CSS和JS。我尝试谷歌搜索几个小时,我仍然无法解决它。

<form name="outing">
<select id="outing">
<option value="toddlers">Toddlers</option>
<option value="children">Children</option>
<option value="teenagers">Teenagers</option>
<option value="adults">Adults</option>
<option value="eldery">Elderly</option>
</select>
<input type="button" name="button" value="Go!" onClick="familyOuting();">
<input type="reset" value="Reset" onClick="window.location.reload()"/>
</form>

<script type="text/javascript">
    function familyOuting(){
        var age = document.getElementById("outing").selectedIndex;
        if(age=="toddlers"){
            var place = "Bring to picnic";
        }
        if(age=="children"){
            var place = "Bring to playground";
        }
        if(age=="teenagers"){
            var place = "Bring to swimming pool";
        }
        if(age=="adults"){
            var place = "Bring to dinner";
        }
        if(age=="elderly"){
            var place = "Bring to picnic";
        }
        document.getElementById("xxx").innerHTML=(place);
    }
</script>
<div id="xxx">

2 个答案:

答案 0 :(得分:2)

selectedIndex只返回一个整数,因此它永远不会匹配你的字符串

而是使用value ...

var age = document.getElementById("outing").value;

另外,在比较中,使用===进行严格的字符串比较..

if(age==="toddlers"){
    var place = "Bring to picnic";
}

答案 1 :(得分:0)

<select id="mySelect">
  <option value="apple">Apple</option>
  <option value="orange">Orange</option>
  <option value="pineapple">Pineapple</option>
  <option value="banana">Banana</option>
</select>

var x = document.getElementById("mySelect");
x.options[x.selectedIndex].value