Próbuję ustawić przycisk opcji. Chcę ustawić go za pomocą wartości lub identyfikatora.
To jest to, czego próbowałem.
$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);
newcol
to identyfikator przycisku opcji.
Może trzeba trochę edytować.
Istnieją dwa zestawy skrzynek radiowych, jedna z kolumnami, a druga z rzędami. Więc widzę sens w nieużywaniu identyfikatorów. Mój błąd. Mam więc jako przykład:
<input type="radio" name="rows" class="listOfCols"
style="width: 50%; " value="Site"></input>
i
<input type="radio" name="cols" class="listOfCols"
style="width: 50%; " value="Site"></input>
z usuniętym identyfikatorem i muszę ustawić właściwy.
jquery
radio-button
mike628
źródło
źródło
Odpowiedzi:
Twój selektor szuka potomka
input:radio[name=cols]
elementu, który ma idnewcol
(no cóż, wartość tej zmiennej).Spróbuj tego zamiast tego (ponieważ i tak wybierasz według identyfikatora):
Oto demo: http://jsfiddle.net/jasper/n8CdM/1/
Ponadto od jQuery 1.6 preferowaną metodą zmiany właściwości jest
.prop()
: http://api.jquery.com/propźródło
prop
żywoattr
.attr
przestarzałe dla właściwości i nie działa już w jQuery 2.0))Znalazłem odpowiedź tutaj:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery
Zasadniczo, jeśli chcesz sprawdzić jeden przycisk opcji, MUSISZ przekazać wartość jako tablicę:
źródło
W swoim selektorze wydaje się, że próbujesz pobrać jakiś zagnieżdżony element swojego przycisku radiowego o podanym identyfikatorze. Jeśli chcesz sprawdzić przycisk opcji, powinieneś wybrać ten przycisk w selektorze, a nie coś innego:
Zakłada się, że w znaczniku znajduje się następujący przycisk opcji:
Jeśli twój przycisk opcji miał identyfikator:
możesz bezpośrednio użyć selektora identyfikatora:
źródło
cols
nazwie$('input:radio[name="cols"]').attr('checked', 'checked');
, wybierze tylko ostatnie. Uruchomi kod na każdym, ale za każdym razem, gdy ustawiszchecked
właściwość, poprzednio ustawiony element zostanie usunięty. Oto demo: jsfiddle.net/jasper/n8CdM/2Możesz wypróbować następujący kod:
Spowoduje to ustawienie atrybutu sprawdzonego dla kolumn radiowych i wartości zgodnie z podanymi wartościami.
źródło
...the most important concept to remember about the checked attribute is that it does not correspond to the checked property.
Źródło: api.jquery.com/attrDlaczego potrzebujesz
'input:radio[name=cols]'
. Nie znasz swojego kodu HTML, ale zakładając, że identyfikatory są unikalne, możesz to po prostu zrobić.źródło
Spróbuj tego:
Miałem problemy z
attr("checked", true)
, więc zamiast tego używam powyższego.Ponadto, jeśli masz identyfikator, nie potrzebujesz tych innych rzeczy do wyboru. Identyfikator jest unikalny.
źródło
checked="checked"
atrybut, a przeglądarka pokaże go jako zaznaczone, a następnie wybierz B i to samo stanie się. Teraz, gdy ponownie wybierzesz A, będzie miał jużchecked="checked"
atrybut i nic się nie zmieni. Efektem ubocznym tego nadal będzie B, a nie A.Ponieważ
newcol
jest to identyfikator przycisku opcji, możesz go po prostu użyć, jak poniżej.źródło
Używanie
.filter()
również działa i jest elastyczne dla id, wartości, nazwy:$('input[name="cols"]').filter("[value='Site']").attr('checked', true);
(widoczne na tym blogu )
źródło
Łączenie poprzednich odpowiedzi:
źródło
Możesz po prostu użyć:
źródło
Wybrana odpowiedź działa w tym przypadku.
Ale pytanie dotyczyło znalezienia elementu na podstawie radiogroup i dynamicznego identyfikatora, a odpowiedź może również pozostawić wyświetlany przycisk radiowy nienaruszony.
Ta linia wybiera dokładnie to, o co proszono, pokazując również zmianę na ekranie.
źródło