2012-05-08 15 views
29

mamJak zresetować select elementu z jQuery

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

jQuery, co byłoby najprostszym (mniej pisać) sposób zresetować select tak jest wybrana pierwsza opcja?

+1

Kiedy chcesz to zresetować? jeśli na stronie ładuje, po prostu dodaj atrybut wybrany do tej opcji. –

+0

@Vega nie ma znaczenia dla pytania, kiedy chcę, aby tak się stało. Jest podpięty do zdarzenia wywołanego działaniem użytkownika. –

Odpowiedz

67

spróbować. To zadziała. $('#baba').prop('selectedIndex',0);

Sprawdź tutaj http://jsfiddle.net/bibin_v/R4s3U/

+0

Jeśli zrozumiałem poprawnie, to chce wybrać '' –

11

W twoim przypadku (iw większości przypadków użycia widziałem), wszystko czego potrzebujesz to:

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

Demo.

+4

jeśli element select nie ma opcji z 'value =" "', to zostanie utworzony w nowszych wersjach jquery – billynoah

0

To załatwia sprawę i działa na dowolny wybierz.

$('#baba').val($(this).find('option:first').val()); 
0

wierzę:

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

Edit: staroświecki sposób,

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

Spróbuj poniżej i powinien działać w Twoim przypadku,

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

DEMO

0

Resetowanie pojedynczego pola wyboru do opcji domyślnej.

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


Lub jeśli chcesz zresetować wszystkie pola formularza do domyślnej opcji:

<script> 
    $('select').each(function() { 
     $(this).val($(this).find("option[selected]").val()); 
    }); 
</script> 
0

Najlepszym rozwiązaniem javascript znalazłem jest to

elm.options[0].selected="selected"; 
+0

To nie zapewnia Odpowiedz na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast).- [Z recenzji] (/ opinia/niskiej jakości-posts/18148199) – Mamun