Ich möchte eine Dropdown-Liste mit einer Reihe von Werten haben, aber dem Benutzer auch erlauben, einen neuen Wert "auszuwählen", der dort nicht aufgeführt ist.
Ich sehe, dass select2 dies unterstützt, wenn Sie es im tags
Modus verwenden, aber gibt es eine Möglichkeit, dies ohne Verwendung von Tags zu tun?
jquery-select2
John John
quelle
quelle
Antworten:
Für Version 4+ überprüfen Sie diese Antwort unten von Kevin Brown
In Select2 3.5.2 und darunter können Sie Folgendes verwenden:
(entnommen aus einer Antwort auf der select2-Mailingliste, kann den Link aber jetzt nicht finden)
quelle
selectOnBlur: true
Willens erledigttags: []
zusammen mit verwenden möchtencreateSearchChoice
.Die hervorragende Antwort von @fmpwizard funktioniert für Select2 3.5.2 und niedriger, funktioniert jedoch nicht in 4.0.0 .
Select2 unterstützt seit sehr früh (aber vielleicht nicht so früh wie diese Frage) "Tagging": Hier können Benutzer ihren eigenen Wert hinzufügen, wenn Sie dies zulassen. Dies kann über die
tags
Option aktiviert werden , und Sie können mit einem Beispiel in der Dokumentation herumspielen .Standardmäßig wird eine Option erstellt, die denselben Text wie der eingegebene Suchbegriff enthält. Sie können das verwendete Objekt ändern, wenn Sie es auf besondere Weise markieren möchten, oder das Objekt nach Auswahl aus der Ferne erstellen.
select2:select
Die zusätzliche Eigenschaft dient nicht nur als leicht zu erkennendes Flag für das durch das Ereignis übergebene Objekt , sondern ermöglicht es Ihnen auch, die Option im Ergebnis etwas anders zu rendern. Wenn Sie also visuell signalisieren möchten, dass es sich um eine neue Option handelt, indem Sie " (neu) " daneben setzen, können Sie so etwas tun.quelle
Nur um den Code am Leben zu erhalten, poste ich den Code von @rrauenza Fiddle aus seinem Kommentar .
HTML
jQuery
quelle
Da viele dieser Antworten in 4.0+ nicht funktionieren, kann der Server bei Verwendung des Ajax den neuen Wert als Option hinzufügen. So würde es funktionieren:
[{"text":" my NEW option)","id":"0"}]
quelle
Es gibt eine bessere Lösung, denke ich jetzt
Setzen Sie das Tagging in den Auswahloptionen einfach auf true.
von https://select2.org/tagging
quelle
Verbesserte Antwort auf @fmpwizard:
quelle
Ich bin gerade von Kevin Brown darauf gestoßen. https://stackoverflow.com/a/30019966/112680
Sie müssen
v4.0.6
lediglich dentags: true
Parameter verwenden.quelle
In den meisten Fällen müssen wir Werte mit unempfindlichen Registern vergleichen. Und dieser Code gibt false zurück, was zur Erstellung doppelter Datensätze in der Datenbank führt. Darüber hinaus wird String.prototype.localeCompare () vom Browser Safary nicht unterstützt und dieser Code funktioniert in diesem Browser nicht.
wird besser ersetzen
quelle
Vielen Dank für die Hilfe, ich habe den folgenden Code in Codeigniter II verwendet und verwende Version: 3.5.2 von select2.
quelle