76

我有

<select id="baba">
<option>select something</option>
<option value="1">something 1</option>
<option value=2">something 2</option>
</select>

使用 jQuery,重置select第一个选项的最简单(少写)方法是什么?

4

14 回答 14

185

试试这个。这将起作用。$('#baba').prop('selectedIndex',0);

检查这里http://jsfiddle.net/bibin_v/R4s3U/

于 2012-05-08T15:59:35.050 回答
31

在您的情况下(在我见过的大多数用例中),您只需要:

$("#baba").val("");

演示

于 2012-05-08T15:58:58.147 回答
13
$('#baba option:first').prop('selected',true);

现在你最好使用.prop()http ://api.jquery.com/prop/

于 2012-05-08T15:59:15.183 回答
7
$('#baba').prop('selectedIndex',-1);
于 2013-12-18T10:38:33.787 回答
6

将单选字段重置为默认选项。

<select id="name">
    <option>select something</option>
    <option value="1" >something 1</option>
    <option value="2" selected="selected" >Default option</option>
</select>
<script>
    $('name').val( $('name').find("option[selected]").val() );
</script>


或者,如果您想将所有表单字段重置为默认选项:

<script>
    $('select').each( function() {
        $(this).val( $(this).find("option[selected]").val() );
    });
</script>
于 2016-07-18T07:26:20.750 回答
6

如果这些解决方案都不适合您,请尝试在之后添加

.trigger( "change" );

前任。

$("#baba").val("").trigger( "change" );

或者

$("#baba").val(false).trigger( "change" );

或者

$("#baba option").prop("selected", false).trigger( "change" );

或者

$('#baba').prop('selectedIndex',-1).trigger( "change" );

或者

$('#baba option:first').prop('selected',true).trigger( "change" );
于 2020-03-18T12:47:39.850 回答
4

编辑:老式的方式,

document.getElementById('baba').selectedIndex = 0;

在下面尝试,它应该适用于您的情况,

$('#baba option:first').prop('selected', true);

演示

于 2012-05-08T16:00:46.333 回答
2
$('#baba option:first').attr('selected',true);
于 2012-05-08T15:58:50.290 回答
1

这可以解决问题,适用于任何选择。

$('#baba').val($(this).find('option:first').val());
于 2012-05-08T15:59:00.907 回答
1

我发现的最好的 javascript 解决方案是这个

elm.options[0].selected="selected";
于 2017-12-04T12:53:26.083 回答
1

如果您不想使用第一个选项(以防字段被隐藏或其他情况),那么以下 jQuery 代码就足够了:

$(document).ready(function(){
    $('#but').click(function(){
        $('#baba').val(false);
    })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<select id="baba">
<option>select something</option>
<option value="1">something 1</option>
<option value=2">something 2</option>
</select>
    
    <input type="button" id="but" value="click">

于 2019-05-03T13:46:24.377 回答
1

这个函数应该适用于所有类型的选择(multiple、select、select2):

$.fn.Reset_List_To_Default_Value = function()
{
    $.each($(this), function(index, el) {
        var Founded = false;

        $(this).find('option').each(function(i, opt) {
            if(opt.defaultSelected){
                opt.selected = true;
                Founded = true;
            }
        });

        if(!Founded)
        {
            if($(this).attr('multiple'))
            {
                $(this).val([]);
            }
            else
            {
                $(this).val("");
            }
        }
        $(this).trigger('change');
    });
}

要使用它,只需调用:

$('select').Reset_List_To_Default_Value();
于 2020-02-02T11:32:22.623 回答
0

我相信:

$("select option:first-child").attr("selected", "selected");
于 2012-05-08T15:59:05.650 回答
0

这与其他答案略有不同,因为它取消选择所有选项:

$("#baba option").prop("selected", false);

(借自https://stackoverflow.com/a/11098981/1048376

于 2019-10-22T19:37:29.803 回答