2015-07-10 26 views
-2

我有两个分别命名为日期和时间的下拉菜单。当我点击一个按钮时,我想从选项标签中获取 文本,但javascript功能似乎不起作用。我发现了类似的问题(和答案),但没有成功。代码如下:从html中的选择标记中获取文本

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function collectData() { 
    var index = document.getElementById("date").selectedIndex; 
    var date = document.getElementById("date").options[index].text; 
    window.alert("You selected: " + date); 
} 
</script> 
</head> 
<body> 
    <select name="date"> 
    <option value="1">date 1</option> 
    ..... 
    </select> 

    <select name="time"> 
    <option value="1">time 1</option> 
    ..... 
    </select> 

    <button type="button" onclick="collectData()">Get data</button> 
</body> 
</html> 

回答

2

您正在通过ID选择元素,但是您没有在任何地方分配ID。

您需要正确的ID添加到项目:

<select id="date" name="date"> 
.... 
<select id="time" name="time"> 

或者你也可以按名称选择项目:

var index = document.getElementsByName("date")[0].selectedIndex; 

注:getElementsByName返回一个数组,这就是为什么[0]是添加到选择具有该名称的第一个项目。到

<!DOCTYPE html> 
    <html> 
    <head> 
    <script type="text/javascript"> 
    function collectData() { 
     var e = document.getElementById("date"); 
     var strUser = e.options[e.selectedIndex].value; 
     window.alert("You selected: " + strUser); 
    } 
    </script> 
    </head> 
    <body> 
     <select name="date" id="date"> 
     <option value="1">date 1</option> 
.. 

     </select> 

     <select name="time"> 
.. 
     </select> 

     <button type="button" onclick="collectData()">Get data</button> 
    </body> 
    </html> 
0

更改密码。

0

您使用getElementById('date')。所以添加id属性来选择元素

0

试试这个:

function collectData() {  
 
    var ddl = document.getElementById("dateSelect"); 
 
    var text = ddl.options[ddl.selectedIndex].text; 
 
    window.alert("You selected: " + text); 
 
}
<select id="dateSelect" name="date"> 
 
    <option value="1">date 1</option> 
 
    <option value="2">date 2</option> 
 
    <option value="3">date 3</option> 
 
</select> 
 
<button type="button" onclick="collectData()">Get data</button>

这里一个CodePen