重置所有选择下拉列表

时间:2012-01-03 11:35:18

标签: javascript jquery

我有一个被onbeforeunload调用的函数。我希望重置所有下拉列表,但我找不到正确的方法将它们重置为0值。

<head>
    <script type="text/javascript">
        function displaymessage() {
            document.getElementsByTagName('select').value = 1;
            //or
            document.getElementsByTagName('select').options.length = 0;
        }
    </script>
</head>

<body>
    <form>
        <input type="button" value="Click me!" onclick="displaymessage()" />
    </form>

    <select name="data[Rate][15][12][num_rooms]" id="r15ro12">
        <option value="0">0</option><option value="1">1 Rooms</option>
        <option value="2">2 Rooms</option><option value="3">3 Rooms</option><option value="4">4 Rooms</option>
        <option value="5">5 Rooms</option><option value="6">6 Rooms</option><option value="7">7 Rooms</option>
        <option value="8">8 Rooms</option><option value="9">9 Rooms</option>
    </select>

    <select name="data[Rate][15][12][num_rooms]" id="r15ro12">
        <option value="0">0</option><option value="1">1 Rooms</option>
        <option value="2">2 Rooms</option><option value="3">3 Rooms</option><option value="4">4 Rooms</option>
        <option value="5">5 Rooms</option><option value="6">6 Rooms</option><option value="7">7 Rooms</option>
        <option value="8">8 Rooms</option><option value="9">9 Rooms</option>
    </select>
</body>
</html>

9 个答案:

答案 0 :(得分:24)

function displaymessage() {
    $("select").each(function() { this.selectedIndex = 0 });
}

这将选择第一个选项(不一定具有值= 0)

答案 1 :(得分:6)

这是一种使用本机JavaScript选择所有select中的第一个选项的方法;

var elements = document.getElementsByTagName('select');
for (var i = 0; i < elements.length; i++)
{
    elements[i].selectedIndex = 0;
}

...但jQuery非常方便,让大多数事情变得更容易。

答案 2 :(得分:3)

如下:

$(window).unload(function () {
    $("select").val("0");
});

答案 3 :(得分:2)

使用原始javascript代码,我们可以执行以下操作,

elements = document.getElementsByTagName("select")
for(i=0; i < elements.length ; i++){
 elements[i].selectedIndex= 0;
}

答案 4 :(得分:1)

试试这个:

function displaymessage() {
    $("select").val("0");
}

答案 5 :(得分:1)

首先,您不应对不同的标记使用相同的名称/ ID。它应该是每个标签的唯一。

在标签中调用函数,如

然后改变你的乐趣就像     function displaymessage(){     var x = document.getElementsByTagName('select');     for(var i = 0; i&lt; 2; i ++)         {               document.getElementById(x [i] .id).options [0] .selected =“0”;         }     }

答案 6 :(得分:1)

又一种方式

$('select option:first-child').attr('selected', 'selected');

DEMO

答案 7 :(得分:0)

试试这个:

$( 'select' ).each( function () {
    if ( $( this ).children().length > 0 ) {
        $( $( this ).children()[0] ).attr( 'selected', 'selected' );
    }
} );

答案 8 :(得分:0)

$('#dropDownListID')。val(“”);

$('#dropDownListID')。val(“ 0”);