Mam trzy przyciski radiowe o tej samej nazwie i różnych wartościach.Kiedy kliknę trzeci przycisk opcji, pole wyboru i pole tekstowe zostaną wyłączone. Ale kiedy wybiorę pozostałe dwa przyciski opcji, muszą być pokazane.Potrzebuję pomocy w Jquery.Dzięki postęp....
<form name="checkuserradio">
<input type="radio" value="1" name="userradiobtn" id="userradiobtn"/>
<input type="radio" value="2" name="userradiobtn" id="userradiobtn"/>
<input type="radio" value="3" name="userradiobtn" id="userradiobtn"/>
<input type="checkbox" value="4" name="chkbox" />
<input type="text" name="usertxtbox" id="usertxtbox" />
</form>
name
s mogą być identyczne, aleid
muszą być unikalne.Odpowiedzi:
HTML
Javascript
źródło
i
jest przekazywanyfunction(i)
przez JQueryeach()
.i==2
służy do uzyskania dostępu do trzeciego przycisku opcji. Zapoznaj się z moimi kodami.<span id="radiobutt">
- Kuzyn RadioHead?Niezbyt konieczne, ale małe ulepszenie kodu okw, które przyspieszyłoby wywołanie funkcji (ponieważ przenosisz warunek poza wywołanie funkcji).
źródło
Ten wątek jest trochę stary, ale informacje powinny zostać zaktualizowane.
http://api.jquery.com/attr/
źródło
removeProp
dla wyłączonej usługi. Dokumentacja jQuery mówi, aby użyćprop("disabled", false);
zamiast tego. api.jquery.com/prop/#prop-propertyName-valueNie jestem pewien, dlaczego niektóre z tych rozwiązań używają .each () - nie jest to konieczne.
Oto działający kod, który wyłącza się po kliknięciu trzeciego pola wyboru, w przeciwnym razie usuwa wyłączony atrybut.
Uwaga: dodałem identyfikator do pola wyboru. Pamiętaj też, że identyfikatory muszą być unikalne w dokumencie, więc usuń identyfikatory z przycisków radiowych lub nadaj im niepowtarzalny charakter
źródło
each()
został użyty, ponieważ chcemy uzyskać trzeci przycisk opcji. Możemy$("input[type=radio]:eq(2)")
też użyć . Twoja metoda identyfikuje przycisk opcji według wartości, co oczywiście jest również poprawne. :)Wiem, że nie jest dobrym nawykiem odpowiadanie na stare pytanie, ale daję tę odpowiedź osobom, które później zobaczyłyby to pytanie.
Najlepszy sposób na zmianę stanu w JQuery jest teraz zakończony
Sprawdź ten link, aby uzyskać pełną ilustrację. Wyłączyć / włączyć wejście za pomocą jQuery?
źródło
Zrobiłbym to nieco inaczej
Atrybut klasy uwagi
W ten sposób, jeśli będziesz musiał dodać więcej przycisków opcji, nie musisz się martwić o zmianę javascript
źródło
Domyślam się, że prawdopodobnie chcesz powiązać zdarzenie „kliknięcia” z kilkoma przyciskami radiowymi, odczytać wartość klikniętego radiobutton iw zależności od wartości, wyłączyć / włączyć pole wyboru i / lub pole tekstowe.
źródło
Przepraszam, że spóźniłem się na przyjęcie, ale widzę tutaj miejsce na poprawę. Nie chodzi o „wyłączenie pola tekstowego”, ale o wybór radionboxa i uproszczenie kodu, co czyni go nieco bardziej odpornym na przyszłość, do późniejszych zmian.
Przede wszystkim nie powinieneś używać .each () i używać indeksu do wskazywania konkretnego przycisku opcji. Jeśli pracujesz z dynamicznym zestawem przycisków opcji lub jeśli później dodasz lub usuniesz niektóre przyciski opcji, Twój kod zareaguje na niewłaściwy przycisk!
Następnie, ale prawdopodobnie tak nie było, gdy tworzono OP, wolę używać .on ('click', function () {...}) zamiast click ... http: //api.jquery. com / on /
Co nie mniej ważne, kod można by uczynić prostszym i przyszłym, wybierając przycisk radiowy oparty na jego nazwie (ale pojawił się już w poście).
Więc skończyłem z następującym kodem.
HTML (oparty na kodzie okw)
Kod JS
źródło
MVC 4 @ Html.CheckBox Na ogół ludzie chcą działać po zaznaczeniu i usunięciu zaznaczenia pola wyboru mvc.
możesz zdefiniować identyfikator kontrolek, które chcesz zmienić, aw javascript wykonaj następujące czynności
możesz również zmienić właściwość, np
źródło
Pokaż fragment kodu
źródło
pobierz wartość przycisków radiowych i dopasowuje do każdego, jeśli jest 3, a następnie wyłącza
checkbox and textbox
.źródło