Antworten:
Mit Hilfe der Attributauswahl können Sie das Eingabeelement mit dem entsprechenden Wert auswählen. Dann müssen Sie das Attribut explizit festlegen, indem Sie .attr
:
var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');
Seit jQuery 1.6 können Sie die .prop
Methode auch mit einem booleschen Wert verwenden (dies sollte die bevorzugte Methode sein):
$("input[name=mygroup][value=" + value + "]").prop('checked', true);
Denken Sie daran, dass Sie zuerst das markierte Attribut aus einem der Optionsfelder unter einer Optionsfeldgruppe entfernen müssen. Dann können Sie einem der Optionsfelder in dieser Optionsfeldgruppe das aktivierte Merkmal / Attribut hinzufügen.
Code zum Entfernen des aktivierten Attributs aus allen Optionsfeldern einer Optionsfeldgruppe -
$('[name="radioSelectionName"]').removeAttr('checked');
.is
würde hier nicht helfen, aber ich stimme zu .prop
. Es war damals noch nicht verfügbar;) Wird meine Antwort aktualisieren. Vielen Dank!
.val()
das Festlegen von Werten in Radio- oder Kontrollkästchengruppen unterstützt wird. Diese Antwort funktioniert technisch, ist aber umständlich und viel weniger lesbar / einprägsam.
Es gibt eine bessere Möglichkeit, Radios und Kontrollkästchen zu aktivieren. Sie müssen anstelle eines Rohwerts ein Array von Werten an die val-Methode übergeben
Hinweis: Wenn Sie den Wert einfach selbst übergeben (ohne sich in einem Array zu befinden ), werden alle Werte von "mygroup" auf den Wert gesetzt.
$("input[name=mygroup]").val([5]);
Hier ist das jQuery-Dokument, das erklärt, wie es funktioniert: http://api.jquery.com/val/#val-value
Und .val([...])
arbeitet auch mit Formelementen wie <input type="checkbox">
, <input type="radio">
und <option>
s innerhalb von ein <select>
.
Die Eingaben und Optionen mit einem Wert, der mit einem der Elemente des Arrays übereinstimmt, werden überprüft oder ausgewählt, während diejenigen mit einem Wert, der nicht mit einem der Elemente des Arrays übereinstimmt, deaktiviert oder nicht ausgewählt sind
Fiddle demonstriert diese Arbeitsweise: https://jsfiddle.net/92nekvp3/
Wenn Sie den Attributwert wie oben erwähnt ändern, wird das change
Ereignis nicht ausgelöst. Wenn dies aus bestimmten Gründen erforderlich ist, können Sie es wie folgt auslösen
$('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])