2011-07-18 5 views
9

Sto usando jQuery per popolare DropDownList, i codici sono come di seguito:Come impostare il valore selezionato come vuoto per dropdownlist tramite jQuery

var myOptions = { 
    val1 : 'text1', 
    val2 : 'text2', 
    val3 : '' 
    }; 
$.each(myOptions, function(val, text) { 
    $('#mySelect').append($('<option></option>').val(val).html(text)  
); 

}); 

ora devo compilare 3 articoli nella mia discesa, e ora voglio impostare il mio DropDownList valore selezionato con '', proprio come:

$("#mySelect option contain('')").attr(selected,true). 

in realtà, questo otterrà tutti i 3 oggetti in modo che non imposterà '' come valore selezionato, c'è un modo che io possa fare questo?

+2

Se non si accetta mai una risposta corretta, non si premiano coloro che cercano di aiutarti; quindi, ferire la tua possibilità di ottenere una risposta. – Phil

+0

Devi accettare le risposte alla tua domanda. Basta fare clic sul segno di spunta accanto alla risposta che ha risolto il problema. –

+1

Hai davvero bisogno di usare '.html (testo)' per impostare l'etichetta? Se non si fa HTML all'interno del testo, si dovrebbe usare '.text (text)' per prevenire le vulnerabilità XSS. Questo è estremamente importante se 'text' può contenere input dell'utente. –

risposta

35
$("#mySelect option[value='']").attr('selected', true) 
+6

Domanda: would not '.val ('')' fa anche il trucco? –

+2

@JoshPinter puoi fare '.val (null)' –

6

Farà lo stesso. $('#elemtId').val('') Raggiungerà lo stesso risultato

+0

In alcuni casi questo tende a fallire. Nel mio caso particolare in Chrome mobile per iOS, non funziona correttamente se si trova all'interno di un evento di modifica. – Cenobyte321