为什么同样的答案?

时间:2015-03-24 14:18:38

标签: javascript

我是初学者。

为什么这个脚本总是给出1作为答案?问题是什么?

无论选择哪个月,答案始终为1。

<select id="monthSelect">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>

<input type="button" value="?" onclick="alert(selectedMonth)"/>

<script>
var e = document.getElementById('monthSelect')
var i = e.selectedIndex;
var selectedMonth = e.options[i].value;
</script>  

3 个答案:

答案 0 :(得分:3)

因为代码在侧面加载时运行,此时选择为1。

<input type="button" value="?" onclick="getSelection()"/>
function getSelection() {      
        var e = document.getElementById('monthSelect')
        var i = e.selectedIndex;
        alert(e.options[i].value); 
    }

您的代码很好:http://jsfiddle.net/vrwkpur7/

答案 1 :(得分:3)

问题在于你的onclick =&#34;警告(selectedMonth)&#34 ;;因为你没有在它上面调用任何功能而只是提醒。我按你解释的方式更正了你的代码。请检查以下解决方案。用下面提到的点击事件替换你的点击事件按钮。

<input type="button" value="?" onclick="alert(selectedMonth())"/>

用下面给出的脚本替换你的脚本,你就会有答案。

function selectedMonth(){

   var e = document.getElementById('monthSelect');
        var i = e.selectedIndex;
        return e.options[i].value; 
}

答案 2 :(得分:0)

不使用功能的解决方案

<select id="monthSelect">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="button" value="?" onclick="alert(monthSelect.selecteIndex);"/>  

JsFiddle

解决方案功能

<select id="monthSelect">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="button" value="?" onclick="getSelectedMonth();"/>
 <script>
 function getSelectedMonth()
 {

var e = document.getElementById('monthSelect')
var i = e.selectedIndex;
var selectedMonth = e.options[i].value;
     alert(selectedMonth);
 }
</scrip>