Risposte:
Con l'aiuto del selettore di attributi è possibile selezionare l'elemento di input con il valore corrispondente. Quindi devi impostare l'attributo esplicitamente, usando .attr
:
var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');
Da jQuery 1.6, puoi anche usare il .prop
metodo con un valore booleano (questo dovrebbe essere il metodo preferito):
$("input[name=mygroup][value=" + value + "]").prop('checked', true);
Ricorda che devi prima rimuovere l'attributo controllato da uno qualsiasi dei pulsanti di opzione in un solo gruppo di pulsanti di opzione, quindi sarai in grado di aggiungere proprietà / attributi selezionati a uno dei pulsanti di opzione in quel gruppo di pulsanti di opzione.
Codice per rimuovere l'attributo controllato da tutti i pulsanti di opzione di un gruppo di pulsanti di opzione:
$('[name="radioSelectionName"]').removeAttr('checked');
.is
non aiuterei qui, ma sono d'accordo .prop
. Allora non era disponibile;) Aggiornerà la mia risposta. Grazie!
.val()
supporta l'impostazione di valori su gruppi radio o di caselle di controllo. Il modo in cui questa risposta funziona tecnicamente, ma è rotonda e molto meno leggibile / memorabile.
C'è un modo migliore di controllare le radio e la casella di controllo; devi passare una matrice di valori al metodo val anziché un valore non elaborato
Nota: se si passa semplicemente il valore da solo (senza essere all'interno di un array ), ciò comporterà l'impostazione di tutti i valori di "mygroup" sul valore.
$("input[name=mygroup]").val([5]);
Ecco il documento jQuery che spiega come funziona: http://api.jquery.com/val/#val-value
E .val([...])
funziona anche con elementi di modulo come <input type="checkbox">
, <input type="radio">
e <option>
c'è dentro di una <select>
.
Gli input e le opzioni che hanno un valore che corrisponde a uno degli elementi dell'array saranno controllati o selezionati, mentre quelli che hanno un valore che non corrispondono a uno degli elementi dell'array saranno deselezionati o deselezionati
Fiddle dimostrando questo lavoro: https://jsfiddle.net/92nekvp3/
$("input[name='mygroup'][value='5']").attr("checked", true);
Quando si modifica il valore dell'attributo come menzionato sopra, l' change
evento non viene attivato, quindi se necessario per alcuni motivi è possibile attivarlo in questo modo
$('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])