Warum kämpfe ich damit?
Ich habe einen Wert: 5
Wie überprüfe ich das Optionsfeld der Gruppe "mygroup" mit dem Wert 5?
$("input[name=mygroup]").val(5); // doesn't work?
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.
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>
.Fiddle demonstriert diese Arbeitsweise: https://jsfiddle.net/92nekvp3/
quelle
Versuche dies:
JS Fiddle Demo .
quelle
quelle
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ösenquelle
$("input[name='RadioTest'][value='2']").prop('checked', true);
JS Geige Demo
quelle
Oder Sie können einfach ein Wertattribut schreiben:
Das funktioniert bei mir.
quelle
quelle
Reine JavaScript-Version:
quelle
quelle