在javascript中选择<select>标签的值.问题

Zee*_*ang 6 html javascript

我有一个外部Javascript文件,我正在尝试alert选择标记的值.

我的<select>代码看起来像这样:

<select id="vote">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    </select>
<input type="button" value="vote" onclick="castvote();">
Run Code Online (Sandbox Code Playgroud)

和Javascript(外部):

function castvote()
{
    alert(document.vote.options[document.vote.selectedIndex].value);
}
Run Code Online (Sandbox Code Playgroud)

但我收到错误"document.vote is undefined".

有人可以帮我弄这个吗.

最好的Zeeshan

Phi*_*ert 13

如果按Id选择,您应该使用:

function castvote() { 
   var sel = document.getElementById("vote");

   alert(sel.options[sel.selectedIndex].value); 
}
Run Code Online (Sandbox Code Playgroud)

  • 您没有更改document.vote的第二个实例 (3认同)

Mat*_*ges 5

简单的方法,更改您的代码,以便您的表单字段具有name属性:

<select name="vote" id="vote">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<input type="button" value="vote" onclick="castvote();">
Run Code Online (Sandbox Code Playgroud)

更好的方法是,更改您的javascript,以便它通过其ID而不是通过文档对象来检索选择框:

function castvote() {
    var mySelect = document.getElementById("vote"); 
    alert(mySelect.options[mySelect.selectedIndex].value); 
}
Run Code Online (Sandbox Code Playgroud)