Wie kann ich einem Benutzer nur erlauben, nur ein Kontrollkästchen zu aktivieren?
Ich weiß, dass Optionsfelder "ideal" sind, aber für meinen Zweck ... ist es nicht.
Ich habe ein Feld, in dem Benutzer eine oder beide Optionen auswählen müssen, aber nicht beide. Das Problem ist, dass meine Benutzer auch ihre Option abwählen können müssen. Hier schlagen Optionsfelder fehl, da Sie nach Auswahl der Gruppe eine Option auswählen müssen.
Ich werde die Informationen über PHP validieren, aber ich möchte die Benutzer trotzdem auf eine Antwort beschränken, wenn sie sie geben möchten.
Antworten:
Dieses Snippet wird:
quelle
.radio
hilft die Verwendung des Selektors. Vielen Dank für den Hinweis :)Sie möchten einen
change()
Handler binden, damit das Ereignis ausgelöst wird, wenn sich der Status eines Kontrollkästchens ändert. Deaktivieren Sie dann einfach alle Kontrollkästchen außer dem, das den Handler ausgelöst hat:Hier ist eine Geige
Was die Gruppierung betrifft, wenn Ihr Kontrollkästchen "Gruppen" alle Geschwister waren:
Sie könnten dies tun:
Hier ist noch eine Geige
Wenn Ihre Kontrollkästchen werden von einem anderen Attribute gruppiert, wie
name
:Sie könnten dies tun:
Hier ist noch eine Geige
quelle
Optionsfelder sind ideal. Sie benötigen lediglich eine dritte Option "weder", die standardmäßig ausgewählt ist.
quelle
Es gibt bereits einige Antworten darauf, die auf reinem JS basieren, aber keine davon ist so präzise, wie ich es gerne hätte.
Hier ist meine Lösung, die auf der Verwendung von Namensschildern (wie bei Optionsfeldern) und einigen Zeilen Javascript basiert.
quelle
Dies sollte für eine beliebige Anzahl von Kontrollkästchen im Formular funktionieren. Wenn Sie andere haben, die nicht Teil der Gruppe sind, richten Sie die Selektoren für die entsprechenden Eingaben ein.
quelle
Hier ist eine einfache HTML- und JavaScript-Lösung, die ich bevorzuge:
// js Funktion, mit der jeweils nur ein Kontrollkästchen für einen Wochentag aktiviert werden kann:
quelle
Möge dieser Code Ihnen helfen.
Arbeitslink Klicken Sie hier
quelle
Aufbauend auf der Antwort von Billyonecan können Sie den folgenden Code verwenden, wenn Sie dieses Snippet für mehr als ein Kontrollkästchen benötigen (vorausgesetzt, sie haben unterschiedliche Namen).
quelle
Während JS wahrscheinlich der richtige Weg ist, könnte dies nur mit HTML und CSS erfolgen.
Hier haben Sie ein gefälschtes Optionsfeld, das wirklich eine Bezeichnung für ein echtes verstecktes Optionsfeld ist. Auf diese Weise erhalten Sie genau den Effekt, den Sie benötigen.
Sehen Sie es hier: https://jsfiddle.net/tn70yxL8/2/
Dies setzt voraus, dass Sie nicht auswählbare Beschriftungen benötigen.
Wenn Sie bereit waren, die Beschriftungen einzuschließen, können Sie das Wiederholen der Beschriftung "deaktivieren" technisch vermeiden, indem Sie den Text in CSS ändern. Siehe hier: https://jsfiddle.net/7tdb6quy/2/
quelle
Beispiel mit AngularJs
quelle
Mit einfachem altem Javascript.
quelle
quelle
Wenn jemand eine Lösung ohne externe Javascript-Bibliotheken benötigt, können Sie dieses Beispiel verwenden. Eine Gruppe von Kontrollkästchen, die 0..1-Werte zulassen. Sie können auf die Kontrollkästchenkomponente oder den zugehörigen Beschriftungstext klicken.
quelle
Meine Version: Verwenden Sie Datenattribute und Vanilla JavaScript
quelle
Nekromantie:
Und ohne jQuery für eine Checkbox-Struktur wie diese:
du würdest es so machen:
quelle
quelle