2012-05-08 13 views
29

hoCome ripristinare un elemento di selezione con jQuery

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

utilizzando jQuery, quale sarebbe il (meno di scrivere) modo più semplice per ripristinare il select quindi la prima opzione è selezionata?

+1

quando vuoi questo resettato per accadere? se sulla pagina di caricamento, è sufficiente aggiungere l'attributo selezionato a tale opzione. –

+0

@Vega non è rilevante per la domanda quando voglio che ciò accada. È agganciato a un evento innescato da un'azione dell'utente. –

risposta

67

Prova questa. Questo funzionerà. $('#baba').prop('selectedIndex',0);

controllare qui http://jsfiddle.net/bibin_v/R4s3U/

+0

Se ho capito bene, allora vuole selezionare '' –

2
$('#baba option:first').attr('selected',true); 
11

Nel tuo caso (e nella maggior parte dei casi d'uso che ho visto), tutto ciò che serve è:

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

Demo.

+4

se l'elemento select non ha un'opzione con 'value =" "' allora ne verrà creato uno nelle versioni più recenti di jquery – billynoah

0

Questo fa il trucco, e funziona per qualsiasi selezionate.

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

credo:

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

Edit: vecchia maniera,

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

Prova qui sotto e dovrebbe funzionare per il vostro caso,

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

DEMO

0
$('#baba').prop('selectedIndex',-1); 
0

Ripristina il singolo campo di selezione sull'opzione predefinita.

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


Oppure, se si desidera ripristinare tutti i campi del modulo per l'opzione di default:

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

La migliore javascript soluzione che ho trovato è questo

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

Questo non fornisce un rispondi alla domanda. Una volta che hai [reputazione] sufficiente (https://stackoverflow.com/help/whats-reputation) sarai in grado di [commentare qualsiasi post] (https://stackoverflow.com/help/privileges/comment); invece [fornisci risposte che non richiedono chiarimenti da parte del richiedente] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-, invece).- [Dalla recensione] (/ recensione/post di bassa qualità/18148199) – Mamun

Problemi correlati