Chcę ustawić opcję, która została wcześniej wybrana do wyświetlania przy ładowaniu strony. Próbowałem z następującym kodem:
$("#gate").val('Gateway 2');
z
<select id="gate">
<option value='null'>- choose -</option>
<option value='gateway_1'>Gateway 1</option>
<option value='gateway_2'>Gateway 2</option>
</select>
Ale to nie działa. Jakieś pomysły?
jquery
html
jquery-selectors
html-select
Głosuj
źródło
źródło
Odpowiedzi:
To zdecydowanie powinno działać. Oto demo . Upewnij się, że umieściłeś swój kod w
$(document).ready
:źródło
'Gateway 2'
przekazana do funkcjival
odpowiada wartościvalue
atrybutu opcji select, a nie jej tekstowi. Zobacz ten JSFiddle , który jest bardzo łagodnie zredagowaną wersją dema Darina, na przykład, co mam na myśli.źródło
$('#gate').val('Gateway 2').prop('selected', true);
źródło
$('#your-select-box-id :nth-child(2)').prop('selected', true)
który działa, z wizualną aktualizacją listy rozwijanej.Odkryłem, że użycie metody jQuery .val () ma znaczną wadę.
Jeśli to pole wyboru (lub jakikolwiek inny obiekt wejściowy) ma formę i w formularzu jest używany przycisk resetowania, po kliknięciu przycisku resetowania ustawiona wartość zostanie wyczyszczona i nie będzie resetowana do wartości początkowej, jak można się spodziewać.
Wydaje mi się, że to działa najlepiej.
Dla Wybierz pola
Do wprowadzania tekstu
Do wprowadzania tekstu
Dla pól wyboru
Do przycisków radiowych
źródło
źródło
To działa dobrze. Zobacz to skrzypce: http://jsfiddle.net/kveAL/
Możliwe, że musisz zadeklarować swoje jQuery w
$(document).ready()
obsługi?Ponadto, czy możesz mieć dwa elementy, które mają ten sam identyfikator?
źródło
To byłaby kolejna opcja:
źródło
Miałem ten sam problem.
Rozwiązanie: dodaj odświeżenie.
źródło
Wiem, że istnieje kilka iteracji odpowiedzi, ale teraz nie wymaga to jquery ani żadnej innej biblioteki zewnętrznej i można to zrobić dość łatwo, wykonując następujące czynności.
źródło
Niektóre przypadki mogą być
źródło
Mój problem
Miałem ten sam problem. Jedyną różnicą w stosunku do twojego kodu jest to, że ładowałem pole wyboru przez wywołanie ajax i gdy tylko wywołanie ajax zostało wykonane, ustawiłem domyślną wartość pola wyboru
Rozwiązanie
źródło
Miałem problem polegający na tym, że wartość nie została ustawiona z powodu błędu składniowego przed wywołaniem.
Przed połączeniem sprawdź błędy składniowe.
źródło
źródło
źródło
.attr()
był niewłaściwym sposobem na zrobienie tego na długo przed opublikowaniem tej odpowiedzi.Dodatek do @icksde i @Korah (dzięki obu!)
Podczas budowania opcji za pomocą AJAX, document.ready może zostać uruchomiony przed zbudowaniem listy, więc
To nie działa
To robi
Limit czasu działa, ale jak @icksde mówi, że jest delikatny (faktycznie potrzebowałem 20 ms zamiast 10 ms). Lepiej jest zmieścić go w funkcji AJAX w następujący sposób:
źródło