2011-08-18 10 views
25

HTML:Aggiungi opzione vuota alla cima di selezionare e rendere l'opzione selezionata in IE

<select id="dropdown"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

jQuery:

$("#dropdown").prepend("<option value='' selected='selected'></option>"); 

Quando ho eseguito questo in Firefox o Chrome, il calo ha giù per la opzione vuota appena inserita selezionata. Quando lo eseguo su IE8, Volvo lo ha ancora selezionato. Qualche idea?

http://jsfiddle.net/YFu2h/

risposta

34

Modificarlo a questo, e funzionerà:

$("#theSelectId").prepend("<option value=''></option>").val(''); 

http://jsfiddle.net/YFu2h/1/

sembra che IE valuta solo l'attributo selected quando incontra prima il select.

+0

Grazie, ha funzionato. – wkm

+0

Questo imposterà il val a vuoto. Rimozione di tutti gli elementi selezionati che inizialmente ho –

+0

@HarryBosh - ... che è esattamente ciò che l'OP chiedeva. –

3

Prova:

$("#dropdown").prepend(new Option('', '', true, true)); 
$("#dropdown option:first").attr("selected", "selected"); 

O, se si preferisce:

$("#dropdown").prepend("<option value=''></option>"); 
$("#dropdown option:first").attr("selected", "selected"); 

utilizzando la prima opzione è marginalmente più veloce. Le virgolette vuote indicano un valore vuoto e un testo vuoto, quindi inseriscile come ti serve. Non è necessario l'attributo selezionato in precedenza, ora li stiamo aggiungendo in seguito. È qualcosa che ha a che fare con Internet Explorer che non riconosce che viene contrassegnato come selezionato poiché è stato appena creato.

+0

Grazie, ha funzionato. – wkm

9

io non so perché il codice non funziona (forse ha qualcosa a che fare con il fatto che in IE, selectedIndex è di sola lettura), ma, facendo questo funziona in IE:

$("#dropdown").prepend("<option value='' selected='selected'></option>"); 
$("#dropdown")[0].options[0].selected = true; 
+0

Grazie, ha funzionato. – wkm

Problemi correlati