Mam dwa select
pola HTML . Muszę zresetować jedno select
pudełko, gdy dokonuję wyboru w innym.
<select id="name" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
<select id="name2" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
Kiedy wybieram opcję pierwszej select
(tj. id="name"
), Muszę zresetować drugą select
do select all
; podobnie, gdy wybieram opcję drugiej select
(tj. id="name2"
), muszę zresetować pierwszą select
na select all
.
Jak mogę to zrobić?
javascript
jquery
Anish
źródło
źródło
Odpowiedzi:
Coś takiego powinno załatwić sprawę: https://jsfiddle.net/TmJCE/898/
źródło
<button>
elementu, pamiętaj, aby nie ustawiaćtype="reset"
. To nie zadziałało, dopóki nie ustawiłem pisania nabutton
select
na podaną wartość.select.prop('selectedIndex', 0)
zresetuje pierwszą opcję,select.prop('selectedIndex', 1)
ustawi ją na drugą opcję.Jeśli chcesz po prostu zresetować zaznaczony element do jego pierwszej pozycji, najprostszym sposobem może być:
Aby zresetować wszystkie zaznaczone elementy w dokumencie:
EDYCJA: Aby wyjaśnić zgodnie z komentarzem poniżej, powoduje to zresetowanie wybranego elementu do pierwszego pustego wpisu i tylko wtedy, gdy na liście znajduje się pusty wpis.
źródło
value=""
może pojawić się w dowolnej kolejności. 2) Opcja bez atrybutu wartości, tj.<option></option>
Nie jest tym samym, co opcja z atrybutem wartości w postaci pustego łańcucha, tzn<option value=""></option>
. Jasno wskazałeś, że potrzebujemyvalue=""
części 3) Nawet jeśli nie ma wartości<option>
z pustym ciągiem; ustawienie.val('')
„wpłynie na zmianę”, zaznaczenie zmieni się na puste, prawda? Przynajmniej w moim Chrome ...Jak wskazał @PierredeLESPINAY w komentarzach, moje oryginalne rozwiązanie było niepoprawne - zresetowałoby menu rozwijane do najwyższej opcji, ale tylko dlatego, że
undefined
wartość zwracana została rozwiązana na indeks 0.Oto poprawne rozwiązanie, które bierze
selected
pod uwagę właściwość:DEMO : http://jsfiddle.net/weg82/257/
Oryginalna odpowiedź - NIEPRAWIDŁOWA
W jQuery 1.6+ musisz użyć
.prop
metody, aby uzyskać domyślny wybór:Aby resetować się dynamicznie po zmianie pierwszego menu rozwijanego, użyj
.change
zdarzenia:źródło
$('#name2').val( $(this).prop('defaultSelected') );
$(this)
odnosi się do$('#name')
, nie$('#name2')
, więc niedefaultSelected
jest<option>
własnością, zawsze powróciundefined
na<select>
Użyj tego, jeśli chcesz zresetować wybór do opcji, która ma atrybut „wybrane”. Działa podobnie do wbudowanej funkcji javascript form.reset () do select.
źródło
To mi bardzo pomaga.
źródło
Oto jak to działało, jeśli chcesz tylko przywrócić to do swojej pierwszej opcji np. "Wybierz opcję" "Select_id_wrap" to oczywiście element div wokół zaznaczenia, ale chcę to tylko wyjaśnić na wszelki wypadek jakikolwiek wpływ na to, jak to działa. Mój resetuje się do funkcji kliknięcia, ale jestem pewien, że będzie działać również w przypadku zmiany ...
źródło
Użyj poniższego kodu. Zobacz, jak działa tutaj http://jsfiddle.net/usmanhalalit/3HPz4/
źródło
Można to również wykorzystać
źródło
Jest to najbardziej elastyczny / wielokrotnego użytku sposób resetowania wszystkich zaznaczonych pól w formularzu.
źródło
Oto jak sobie z tym poradzić za pomocą losowego elementu opcji zdefiniowanego jako wartość domyślna (w tym przypadku domyślnym jest tekst 2):
źródło
Możesz spróbować tego:
źródło
Miałem problem z użyciem właściwości defaultSelected w odpowiedzi @Jens Roland w jQuery v1.9.1. Bardziej ogólnym sposobem (z wieloma selekcjami zależnymi) byłoby umieszczenie atrybutu wartości domyślnych danych w selekcjach zależnych, a następnie iterowanie przez nie podczas resetowania.
A javascript ...
Zobacz http://jsfiddle.net/8hvqN/, aby uzyskać działającą wersję powyższego.
źródło
Utworzyłem nową opcję w tagu select, która ma wartość pustego ciągu („”) i użyłem:
źródło
Użyj jquery do powiązania zdarzenia onchange do wybrania, ale nie musisz tworzyć kolejnego
$(this)
obiektu jquery.źródło
Użyj tego kodu, aby zresetować wszystkie pola wyboru do opcji domyślnej, w której zdefiniowany jest wybrany atrybut.
źródło
Oto najlepsze rozwiązanie, którego używam. Dotyczy to ponad 1 slectboxa
źródło
W tym segmencie można ustawić opcję 1 w wybranym elemencie. Aby to pokazać wizualnie, musisz dodać .trigger ('zmiana') na końcu.
źródło