Jak ustawić opcję sprawdzania obciążenia radia za pomocą jQuery?
Musisz sprawdzić, czy nie jest ustawiony żaden domyślny, a następnie ustawić domyślny
jquery
radio-button
Phill Pafford
źródło
źródło
Odpowiedzi:
Załóżmy, że masz takie przyciski opcji, na przykład:
I chciałeś sprawdzić ten z wartością obciążenia „Mężczyzna”, jeśli nie jest sprawdzone radio:
źródło
$radios.removeAttr('checked')
przed rekwizytem. Spowoduje to zamieszanie przeglądarki i opublikowanych wartości.Co powiesz na jedną wkładkę?
źródło
Ten spowoduje awarię form.reset ():
Ale ten działa:
źródło
JQuery ma dwa sposoby ustawiania statusu sprawdzania dla radia i pól wyboru i zależy to od tego, czy używasz atrybutu value w znacznikach HTML, czy nie:
Jeśli mają atrybut wartości:
Jeśli nie mają atrybutu wartości:
Więcej szczegółów
W pierwszym przypadku określamy całą grupę radiową za pomocą nazwy i informujemy JQuery, aby znalazł radio do wyboru za pomocą funkcji val. Funkcja val pobiera tablicę 1-elementową i znajduje radio z pasującą wartością, ustawiając jej sprawdzone = prawda. Inne o tej samej nazwie zostaną odznaczone. Jeśli nie znaleziono radia z pasującą wartością, wszystkie zostaną odznaczone. Jeśli istnieje wiele radiotelefonów o tej samej nazwie i wartości, ostatni zostałby wybrany, a inne zostałyby odznaczone.
Jeśli nie używasz atrybutu wartości dla radia, musisz użyć unikalnego identyfikatora, aby wybrać określone radio w grupie. W takim przypadku musisz użyć funkcji prop, aby ustawić właściwość „zaznaczone”. Wiele osób nie używa atrybutu wartości z polami wyboru, więc numer 2 bardziej nadaje się do pól wyboru niż radia. Pamiętaj również, że ponieważ pola wyboru nie tworzą grupy, gdy mają taką samą nazwę, możesz zrobić to
$("[name=myCheckBox").prop("checked", true);
dla pól wyboru.Możesz grać z tym kodem tutaj: http://jsbin.com/OSULAtu/1/edit?html,output
źródło
Podobała mi się odpowiedź @Amc. Odkryłem, że wyrażenie może być dalej skondensowane, aby nie używać wywołania filter () (@chaiko najwyraźniej również to zauważyło). Również prop () jest sposobem na przejście w porównaniu z attr () dla jQuery v1.6 +, zobacz oficjalną najlepszą praktykę na ten temat w dokumentacji jQuery dla prop () .
Rozważ te same tagi wejściowe z odpowiedzi @Paolo Bergantino.
Zaktualizowany jeden wiersz może brzmieć:
źródło
Myślę, że można założyć, że ta nazwa jest unikalna, a całe radio w grupie ma tę samą nazwę. Następnie możesz użyć takiej obsługi jQuery:
Uwaga: Przekazywanie tablicy jest ważne.
Wersja warunkowa:
źródło
$("*")
, pasowałby do wszystkiego, więc powinieneś użyć typu najem$("input")
lub identyfikator bądź idealny, ponieważ DOM ma natywne wywołania, aby uzyskać element przez iddocument.querySelectorAll
robi wszystko.$("input[name=gender]")
lub$("input[name=gender]:radio")
lub (w przypadku współczesnych przeglądarek)$("input[name=gender][type=radio]")
Jeśli chcesz, aby był naprawdę dynamiczny i wybierał radio odpowiadające przychodzącym danym, to działa. Wykorzystuje wartość płci przekazywanych danych lub używa wartości domyślnej.
źródło
Natywne rozwiązanie JS:
http://jsfiddle.net/jzQvH/75/
HTML:
źródło
A jeśli chcesz przekazać wartość ze swojego modelu i chcesz wybrać przycisk opcji z grupy przy obciążeniu na podstawie wartości, użyj:
Jquery:
I html:
źródło
Nie potrzebuję tego wszystkiego. Za pomocą prostego i starego HTML możesz osiągnąć to, co chcesz. Jeśli pozwolisz radio, które chcesz domyślnie sprawdzić, tak:
<input type='radio' name='gender' checked='true' value='Male'>
Gdy strona się ładuje, zostanie sprawdzona.
źródło
źródło
Oto przykład z powyższymi metodami:
W javascript:
źródło
Zwróć uwagę na to zachowanie podczas pobierania wartości wejściowych radia:
Tak
$('input[name="myRadio"]').val()
nie zwróci sprawdzenia wartości wejściowych radiowej, jak można się spodziewać - zwraca wartość pierwszego przycisku radiowego.źródło
De esta forma Jquery otrzymuje wszystkie elementy w kratkę
źródło
// Jeśli robisz to na javascript lub frameworku takim jak kręgosłup, często się z tym spotkasz, możesz mieć coś takiego
podczas
nie będzie działać,
będzie.
Twój selektor może być taki, jak inni poleceni powyżej.
źródło
Działa to w przypadku wielu przycisków opcji
źródło