Odpowiedzi:
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ć .propmetody 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');
.isnie 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ść.
$("input[name=mygroup]").val([5]);
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>.
Dane wejściowe i opcje mające wartość pasującą do jednego z elementów tablicy zostaną zaznaczone lub zaznaczone, a te, które mają wartość, która nie pasuje do jednego z elementów tablicy, będą odznaczone lub odznaczone
Fiddle demonstruje to działanie: https://jsfiddle.net/92nekvp3/
Kiedy zmieniasz wartość atrybutu, jak wspomniano powyżej, changezdarzenie nie jest wyzwalane, więc w razie potrzeby z jakichś powodów możesz je wywołać w ten sposób
$('input[name=video_radio][value="' + r.data.video_radio + '"]')
.prop('checked', true)
.trigger('change');
$("input[name='RadioTest'][value='2']").prop('checked', true);
var key = "Name_radio";
var val = "value_radio";
var rdo = $('*[name="' + key + '"]');
if (rdo.attr('type') == "radio") {
$.each(rdo, function (keyT, valT){
if ((valT.value == $.trim(val)) && ($.trim(val) != '') && ($.trim(val) != null))
{
$('*[name="' + key + '"][value="' + (val) + '"]').prop('checked', true);
}
})
}
$('input[name="mygroup"]').val([5])