Jak usunąć wszystkie opcje z pola wyboru, a następnie dodać jedną opcję i wybrać ją za pomocą jQuery?
Używając rdzenia jQuery, jak usunąć wszystkie opcje pola wyboru, a następnie dodać jedną opcję i wybrać ją?
Moje pole wyboru jest następujące.
<Select id="mySelect" size="9"> </Select>
EDIT: Poniższy kod był pomocny przy tworzeniu łańcucha. Jednakże, (w Internet Explorer) .val('whatever')
nie wybrał opcji, która została dodana. (Używałem tej samej 'wartości' zarówno w .append
jak i .val
).
$('#mySelect').find('option').remove().end()
.append('<option value="whatever">text</option>').val('whatever');
EDYTOWAĆ: Próbując uzyskać to, aby naśladować ten kod, używam następującego kodu za każdym razem, gdy strona / formularz jest resetowany. To pole wyboru jest zaludnione przez zestaw przycisków radiowych. .focus()
był bliżej, ale opcja nie pojawiła się wybrana, jak to się dzieje z .selected= "true"
. Nic nie jest nie tak z moim istniejącym kodem - po prostu próbuję nauczyć się jQuery.
var mySelect = document.getElementById('mySelect');
mySelect.options.length = 0;
mySelect.options[0] = new Option ("Foo (only choice)", "Foo");
mySelect.options[0].selected="true";
EDIT: wybrana odpowiedź była bliska temu, czego potrzebowałem. To zadziałało dla mnie:
$('#mySelect').children().remove().end()
.append('<option selected value="whatever">text</option>') ;
Ale obie odpowiedzi doprowadziły mnie do mojego ostatecznego rozwiązania...
Nie jestem pewien, co dokładnie masz na myśli mówiąc "dodaj jeden i wybierz go", ponieważ i tak zostanie on domyślnie wybrany. Ale jeśli miałbyś dodać więcej niż jeden, miałoby to więcej sensu. Co powiesz na coś w stylu:
Response to "EDIT": Czy możesz wyjaśnić, co masz na myśli mówiąc "To pole wyboru jest wypełnione zestawem przycisków radiowych"? Element
<select>
nie może (legalnie) zawierać elementów<input type="radio">
.Dzięki odpowiedziom, które otrzymałem, udało mi się stworzyć coś takiego jak poniżej, co odpowiada moim potrzebom. Moje pytanie było nieco niejednoznaczne. Dziękuję za śledzenie. Mój ostateczny problem został rozwiązany przez włączenie "selected" do opcji, którą chciałem wybrać.