Wie kann ich festlegen, dass die Funkoption beim Laden mit jQuery überprüft wird?
Sie müssen überprüfen, ob kein Standard festgelegt ist, und dann einen Standard festlegen
jquery
radio-button
Phill Pafford
quelle
quelle
Antworten:
Angenommen, Sie hatten Optionsfelder wie diese, zum Beispiel:
Und Sie wollten die mit dem Wert "Male" onload überprüfen, wenn kein Radio aktiviert ist:
quelle
$radios.removeAttr('checked')
vor der Requisite verwenden. Es wird den Browser und die veröffentlichten Werte verwirren.Wie wäre es mit einem Einzeiler?
quelle
Dieser verursacht den Fehler form.reset ():
Aber dieser funktioniert:
quelle
JQuery bietet zwei Möglichkeiten, den aktivierten Status für Radio und Kontrollkästchen festzulegen. Dies hängt davon ab, ob Sie das Wertattribut im HTML-Markup verwenden oder nicht:
Wenn sie ein Wertattribut haben:
Wenn sie kein Wertattribut haben:
Mehr Details
Im ersten Fall geben wir die gesamte Funkgruppe mit dem Namen an und weisen JQuery an, das Funkgerät zu finden, das mit der Val-Funktion ausgewählt werden soll. Die val-Funktion nimmt ein 1-Element-Array und findet das Radio mit dem übereinstimmenden Wert. Setzen Sie das Checked = True. Andere mit demselben Namen würden abgewählt. Wenn kein Radio mit übereinstimmendem Wert gefunden wird, werden alle abgewählt. Wenn es mehrere Funkgeräte mit demselben Namen und Wert gibt, wird das letzte ausgewählt und andere abgewählt.
Wenn Sie das Wertattribut für Funk nicht verwenden, müssen Sie eine eindeutige ID verwenden, um ein bestimmtes Funkgerät in der Gruppe auszuwählen. In diesem Fall müssen Sie die Prop-Funktion verwenden, um die Eigenschaft "Überprüft" festzulegen. Viele Leute verwenden kein Wertattribut mit Kontrollkästchen, daher ist # 2 eher für Kontrollkästchen als für Radios geeignet. Da Kontrollkästchen keine Gruppe bilden, wenn sie denselben Namen haben, können Sie auch
$("[name=myCheckBox").prop("checked", true);
Kontrollkästchen aktivieren.Sie können mit diesem Code hier spielen: http://jsbin.com/OSULAtu/1/edit?html,output
quelle
Mir hat die Antwort von @Amc gefallen. Ich fand, dass der Ausdruck weiter komprimiert werden konnte, um keinen filter () -Aufruf zu verwenden (@chaiko bemerkte dies anscheinend auch). Prop () ist auch der richtige Weg zu attr () für jQuery v1.6 +. In der jQuery-Dokumentation zu prop () finden Sie die offiziellen Best Practices zu diesem Thema.
Betrachten Sie die gleichen Eingabe-Tags aus der Antwort von @Paolo Bergantino.
Der aktualisierte Einzeiler könnte Folgendes lesen:
quelle
Ich denke, Sie können davon ausgehen, dass dieser Name eindeutig ist und alle Funkgeräte in der Gruppe denselben Namen haben. Dann können Sie die jQuery-Unterstützung folgendermaßen nutzen:
Hinweis: Das Übergeben eines Arrays ist wichtig.
Konditionierte Version:
quelle
$("*")
würden, würde es mit allem übereinstimmen, sodass Sie einen Typ bei Lease$("input")
oder eine ID verwenden solltendocument.querySelectorAll
erledigt alle Aufgaben.$("input[name=gender]")
oder$("input[name=gender]:radio")
oder (für moderne Browser)$("input[name=gender][type=radio]")
Wenn Sie möchten, dass es wirklich dynamisch ist, und das Radio auswählen, das den eingehenden Daten entspricht, funktioniert dies. Es wird der Geschlechtswert der übergebenen Daten verwendet oder der Standardwert verwendet.
quelle
Native JS-Lösung:
http://jsfiddle.net/jzQvH/75/
HTML:
quelle
Und wenn Sie einen Wert aus Ihrem Modell übergeben und ein Optionsfeld aus der Gruppe beim Laden basierend auf dem Wert auswählen möchten, verwenden Sie:
Jquery:
Und das HTML:
quelle
Brauche das alles nicht. Mit einfachem und altem HTML können Sie erreichen, was Sie wollen. Wenn Sie das gewünschte Radio standardmäßig wie folgt überprüfen lassen:
<input type='radio' name='gender' checked='true' value='Male'>
Wenn die Seite geladen wird, wird es überprüft.
quelle
quelle
Hier ist ein Beispiel mit den oben genannten Methoden:
In Javascript:
quelle
Beachten Sie dieses Verhalten beim Abrufen von Funkeingangswerten:
Gibt
$('input[name="myRadio"]').val()
also nicht den erwarteten Wert des Funkeingangs zurück, wie Sie es erwarten könnten - er gibt den Wert des ersten Optionsfelds zurück.quelle
De esta forma Jquery obtiene solo el elemento geprüft
quelle
// Wenn Sie es mit Javascript oder einem Framework wie Backbone machen, werden Sie häufig darauf stoßen, dass Sie so etwas haben könnten
während
wird nicht funktionieren,
werden.
Ihr Selektor kann auch wie die anderen oben empfohlenen sein.
quelle
Dies funktioniert für mehrere Optionsfelder
quelle