2011-07-18 14 views
9

używam jQuery do wypełnienia dropdownlist, kody są jak poniżej:Jak ustawić wybraną wartość jako pusty dropdownlist poprzez jQuery

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

}); 

teraz muszę wypełnić 3 pozycji w mojej listy rozwijanej, a teraz chcę ustawić wybraną wartość mojego dropdownlist z „”, podobnie jak:

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

Właściwie, to będzie uzyskać wszystkie 3 rzeczy tak, że nie będzie ustawiony „” w wybranej wartości, czy jest jakiś sposób, że mogę to zrobić?

+2

Jeśli nigdy nie przyjmiesz poprawnej odpowiedzi, nie nagradzasz tych, którzy próbują ci pomóc; dlatego też raniąc twoją szansę uzyskania odpowiedzi. – Phil

+0

Musisz zaakceptować odpowiedzi na swoje pytanie. Po prostu kliknij znacznik wyboru obok odpowiedzi, która rozwiązała Twój problem. –

+1

Czy naprawdę potrzebujesz użyć '.html (text)', aby ustawić etykietę? Jeśli nie umieścisz HTML w tekście, powinieneś użyć '.text (text)', aby zapobiec lukom XSS. Jest to niezwykle ważne, jeśli "tekst" może zawierać dane wprowadzane przez użytkownika. –

Odpowiedz

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

Pytanie: czy nie ".val (" ") też? –

+2

@JoshPinter można zrobić '.val (null)' –

6

Zrobi to samo. $('#elemtId').val('') Osiągniemy ten sam wynik

+0

To często kończy się niepowodzeniem. W moim przypadku w mobilnej przeglądarce Chrome na iOS nie działa ona prawidłowo, jeśli jest w wydarzeniu związanym ze zmianą. – Cenobyte321

Powiązane problemy