Wie kann ich eine HTML-mehrfach-Auswahl-handeln wie die control-Taste gedrückt gehalten, immer
Ich habe eine web-Anwendung, mit der ich arbeite, das erfordert, dass mehrere HTML-select-element arbeitet wie die control-Taste gedrückt gehalten wird zu allen Zeiten. I. e. klicken Sie auf eine option wechseln, ob es ausgewählt ist oder nicht.
Ich habe versucht, verschiedene Jquery-event bindet, aber es scheint, dass die standard-HTML-mehrfach-Auswahl-Verhalten wird ausgeführt, bevor die Jquery-gebunden-Ereignis ausgelöst wird, so dass es alle, aber unmöglich zu einfach abfangen des Ereignisses und ändern Sie die standard-Verhalten.
Wie kann ich machen, ist so, dass die einzelnen Klicks wechseln Sie die Auswahl einer einzelnen option?
- Können Sie gemeinsam einen jsfiddle, was Sie versucht haben?
- Das können Sie nicht. Wählen Sie Felder und multiple select-Boxen sind OS steuert. Könnte man erstellen Sie Ihre eigenen, wählen Sie box-wie Objekt mit einer ungeordneten Liste oder sowas, und verwenden Sie JS zu füllen es aus der select-box und transfer-Möglichkeiten von der es zurück zu den eigentlichen select-box. Dann können Sie tun, was Sie möchten.
- abeautifulsite.net/blog/2008/04/jquery-multiselect
- versuchen Sie, wenn loudev.com passend für Ihre Anforderung
- Vielleicht stackoverflow.com/questions/2867795/...
- ist halb richtig. Können Sie speichern die option Werte in einem Objekt und verwenden Sie die klicken Sie auf Aktion, um das Objekt zu aktualisieren, dann gelten die änderungen an der select. Check dieser aus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausprobieren. Können Sie speichern die option Werte in einem Objekt und verwenden Sie die klicken Sie auf Aktion, um das Objekt zu aktualisieren, dann gelten die änderungen an der select.
Demo
http://jsfiddle.net/iambriansreed/BSdxE/
HTML
JavaScript
Möchten Sie vielleicht eine einfachere Lösung, wie mit einer Liste von Checkboxen innerhalb eines div mit overflow-Eigenschaft wird festgelegt, um zu scrollen. Das funktioniert vielleicht besser für Sie. Immer ein drop-down zu tun, was Sie gefragt haben, ist ein bisschen beteiligt.
Sehen diese Geige zum Beispiel
HTML
CSS
Hatte, um dieses problem zu lösen mich selbst und bemerkte die verbuggt Verhalten ein einfaches abfangen des
mousedown
und Einstellung das Attribut hätte, so ein überschreiben des select-Elements, und es funktioniert gut.jsFiddle: http://jsfiddle.net/51p7ocLw/
Hinweis: Dieser code ist fix fehlerhaftes Verhalten durch den Austausch der select-element in den DOM. Das ist ein bisschen aggressiv und break-event-Handler die Sie haben könnten, angebracht, um das element.
JS:
HTML:
Den oben genannten Lösungen haben den großen Nachteil nicht unterstützt Auswahl in der checkbox, das ist eigentlich der Grund, warum ich verwenden würde
<select>
-Boxen über checkbox-inputs in den ersten Platz. Zunächst besuchte ich diese Seite finden Sie eine built-in Möglichkeit dieses Problem zu beheben, aber in Anbetracht der oben genannten Antworten, werde ich nur schreiben, dass meine eigenen code.Den folgenden code hat auch den Vorteil, dass es nicht das update auf mouseup-im Gegensatz zu den aktuellen top-Antwort von iambriansreed, aber auf mousedown, das ist die Standardeinstellung in Browsern.
Nur, um zu helfen, zukünftige Googler, meine folgenden code:
JS:
HTML:
Fühlen Sie sich frei, um diesen code zu verwenden, indem Sie einfach kopieren Sie es auf jedes Projekt, das Sie möchten, es zu benutzen auf.