Dlaczego się z tym zmagam?
Mam wartość: 5
Jak sprawdzić przycisk opcji grupy „mygroup” o wartości 5?
$("input[name=mygroup]").val(5); // doesn't work?
Za pomocą selektora atrybutu możesz wybrać element wejściowy z odpowiednią wartością. Następnie musisz jawnie ustawić atrybut, używając .attr
:
var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');
Od jQuery 1.6 możesz również użyć .prop
metody z wartością logiczną (powinna to być metoda preferowana):
$("input[name=mygroup][value=" + value + "]").prop('checked', true);
Pamiętaj, że najpierw musisz usunąć zaznaczony atrybut z dowolnego przycisku opcji w jednej grupie przycisków opcji, a dopiero potem będziesz mógł dodać zaznaczoną właściwość / atrybut do jednego z przycisków opcji w tej grupie przycisków opcji.
Kod do usunięcia zaznaczonego atrybutu ze wszystkich przycisków opcji jednej grupy przycisków opcji -
$('[name="radioSelectionName"]').removeAttr('checked');
.is
nie pomogłoby tutaj, ale zgadzam się z.prop
. Nie było wtedy dostępne;) Zaktualizuje moją odpowiedź. Dzięki!.val()
obsługuje ustawianie wartości w grupach radiowych lub pól wyboru. Ta odpowiedź działa technicznie, ale jest okrężna i znacznie mniej czytelna / zapadająca w pamięć.Jest lepszy sposób sprawdzania radia i pola wyboru; musisz przekazać tablicę wartości do metody val zamiast wartości surowej
Uwaga: Jeśli po prostu przekażesz wartość samą w sobie (bez znajdowania się wewnątrz tablicy ), spowoduje to, że wszystkie wartości „mygroup” zostaną ustawione na wartość.
Oto dokument jQuery, który wyjaśnia, jak to działa: http://api.jquery.com/val/#val-value
A
.val([...])
także współpracuje z elementów formularzy, takich jak<input type="checkbox">
,<input type="radio">
i<option>
jest w środku tematyce<select>
.Fiddle demonstruje to działanie: https://jsfiddle.net/92nekvp3/
źródło
Spróbuj tego:
Demo JS Fiddle .
źródło
źródło
Kiedy zmieniasz wartość atrybutu, jak wspomniano powyżej,
change
zdarzenie nie jest wyzwalane, więc w razie potrzeby z jakichś powodów możesz je wywołać w ten sposóbźródło
$("input[name='RadioTest'][value='2']").prop('checked', true);
JS skrzypce Demo
źródło
Lub możesz po prostu wpisać do niego atrybut wartości:
To działa dla mnie.
źródło
źródło
Wersja czystego JavaScript:
źródło
źródło