Javascript 重置所有选择下拉列表

Javascript 重置所有选择下拉列表,javascript,jquery,Javascript,Jquery,我有一个函数,由onbeforeuload调用。在中,我希望重置所有下拉列表,但我找不到正确的方法将它们重置回0值 <head> <script type="text/javascript"> function displaymessage() { document.getElementsByTagName('select').value = 1; //or document.

我有一个函数,由onbeforeuload调用。在中,我希望重置所有下拉列表,但我找不到正确的方法将它们重置回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>

函数displaymessage(){
document.getElementsByTagName('select')。值=1;
//或
document.getElementsByTagName('select')。options.length=0;
}
01个房间
2个房间3个房间4个房间
5个房间6个房间7个房间
8个房间9个房间
01个房间
2个房间3个房间4个房间
5个房间6个房间7个房间
8个房间9个房间
试试这个:

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

比如说:

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

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

对于原始javascript代码,我们可以执行以下操作:

elements = document.getElementsByTagName("select")
for(i=0; i < elements.length ; i++){
 elements[i].selectedIndex= 0;
}
elements=document.getElementsByTagName(“选择”)
对于(i=0;i
这里有一种方法可以使用本机JavaScript选择所有
选择中的第一个选项

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

…但是jQuery非常方便,使大多数事情变得更加简单。

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

在标记中,调用如下函数:

那就改变你的乐趣吧 函数displaymessage(){ var x=document.getElementsByTagName('select'); 对于(var i=0;i尝试以下方法:

function displaymessage() {
    $("select").val("0");
}
$( 'select' ).each( function () {
    if ( $( this ).children().length > 0 ) {
        $( $( this ).children()[0] ).attr( 'selected', 'selected' );
    }
} );
另一种方式

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

到目前为止,我看到的jQuery解决方案没有考虑删除前面的
selected
属性(如果存在),因此我认为需要执行以下额外步骤:

$("#myControlId").find("select").each(function (index) {
        var ctrl=$(this);       
        if (ctrl.children().length > 0) {
            $(ctrl.children()).each(function(index) {
                if (index===0) $(this).attr('selected', 'selected'); 
                else $(this).removeAttr('selected');
            });
        }
});
此解决方案仅在第一个选项中保留一个选中的
属性,并删除所有其他属性(如果适用)。

$(“#dropDownListID”).val(”


$(“#dropDownListID”).val(“0”)

您不应该有多个元素具有与
相同的
名称
id
以及所有表单元素(
输入
选择
等)应该在
表单
中。例如,我只是快速复制并粘贴了一份,我的代码中没有它,谢谢您的反馈,cheersOk,太好了!还想知道为什么要重置
卸载
上的选择?(假设您关闭弹出窗口)谢谢Fabrizio的帮助,但它没有起作用,meKeith认为它是正确的,只有包含了jQuery库,上面的代码才会起作用。谢谢,我只包含了一个旧版本,现在效果很好。干杯