以下是我的代码。我希望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">
答案 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