从html

时间:2015-07-10 09:37:15

标签: javascript html

我有两个下拉菜单,分别命名为日期和时间。我想得到 单击按钮时选项标签中的文本,但javascript函数似乎不起作用。我发现了类似的问题(和答案),但没有任何效果。代码如下:

<!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>

4 个答案:

答案 0 :(得分:2)

您按ID选择了元素,但您没有在任何地方分配ID。

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

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

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

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

注意:getElementsByName返回一个数组,这就是添加[0]以选择具有该名称的第一个项目的原因。

答案 1 :(得分: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>

答案 2 :(得分:0)

您正在使用getElementById('date')。因此请在选择元素中添加id属性。

答案 3 :(得分: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