Dies gehört zu den Codes vor select2 Version 4
Ich habe einen einfachen Code select2
, um Daten von Ajax zu erhalten
$("#programid").select2({
placeholder: "Select a Program",
allowClear: true,
minimumInputLength: 3,
ajax: {
url: "ajax.php",
dataType: 'json',
quietMillis: 200,
data: function (term, page) {
return {
term: term, //search term
flag: 'selectprogram',
page: page // page number
};
},
results: function (data) {
return {results: data};
}
},
dropdownCssClass: "bigdrop",
escapeMarkup: function (m) { return m; }
});
Dieser Code funktioniert, ich muss jedoch einen Wert festlegen, als ob er sich im Bearbeitungsmodus befindet. Wenn der Benutzer zum ersten Mal einen Wert auswählt, wird dieser gespeichert. Wenn er diesen Wert bearbeiten muss, muss er im selben Auswahlmenü angezeigt werden (select2
) angezeigt werden, um den zuvor ausgewählten Wert auszuwählen, aber ich kann keinen Weg finden.
AKTUALISIEREN:
Der HTML-Code:
<input type="hidden" name="programid" id="programid" class="width-500 validate[required]">
Der programmgesteuerte Zugriff von Select2 funktioniert damit nicht.
javascript
php
jquery
ajax
jquery-select2
Lösche beide
quelle
quelle
$("#programid").val()
Antworten:
So stellen Sie den "ausgewählten" Wert einer Select2-Komponente dynamisch ein:
Wobei der zweite Parameter ein Objekt mit erwarteten Werten ist.
AKTUALISIEREN:
Dies funktioniert, nur um Notiz wollte , dass in der neuen select2, „A_Key“ ist „Text“ in einem Standard - select2 Objekt. so:
{id: 100, text: 'Lorem Ipsum'}
Beispiel:
Vielen Dank an @NoobishPro
quelle
$('#inputID').val(100).trigger('change')
Siehe select2.github.io/…Schritt 1: HTML
Schritt 2: Erstellen Sie eine Instanz von Select2
Schritt 3: Stellen Sie den gewünschten Wert ein
Wenn Sie select2 ohne AJAX verwenden , können Sie wie folgt vorgehen :
Sie können dies auch tun:
Für select2 v4 können Sie eine oder mehrere Optionen direkt wie folgt anhängen:
Oder mit JQuery:
anderes Beispiel
quelle
Html:
JavaScript:
jsfiddle
quelle
Auch wenn ich versucht habe, Ajax in select2 zu verwenden, funktionieren die programmatischen Steuermethoden zum Festlegen neuer Werte in select2 bei mir nicht! Jetzt schreibe ich diesen Code, um das Problem zu beheben:
Sie können den vollständigen Beispielcode unter folgendem Link testen: https://jsfiddle.net/NabiKAZ/2g1qq26v/32/
In diesem Beispielcode befindet sich ein Ajax select2, und Sie können einen neuen Wert mit einer Schaltfläche festlegen.
Code-Snippet anzeigen
quelle
Versuchen Sie diesen Anhang und wählen Sie dann. Dupliziert die Option beim AJAX-Aufruf nicht.
quelle
Mir hat das gefallen-
quelle
In der aktuellen Version auf
select2
-v4.0.1
können Sie den Wert wie folgt festgelegt:quelle
destroy
das Plugin erneut aufzurufen. Siehe den aktualisierten Code.so that I wouldn't have to duplicate them
Warum müssen sie dupliziert werden? Wenn Sie das tundestroy
dasselect
ist immer noch da mit allen seinenoptions
.$example.select2({ ... this ... })
Verwenden Sie für Ajax
$(".select2").val("").trigger("change")
. Das sollte das Problem lösen.quelle
Ich denke du brauchst die
initSelection
Funktionquelle
HTML
JS
Quelle: https://select2.github.io/options.html
quelle
In Select2 V.4
verwenden
$('selector').select2().val(value_to_select).trigger('change');
Ich denke es sollte funktionieren
quelle
Stellen Sie den Wert ein und lösen Sie das Änderungsereignis sofort aus.
quelle
Ich habe mein Problem mit diesem einfachen Code gelöst. Dabei ist #select_location_id eine ID des Auswahlfelds und value der Wert einer Option, die im Feld select2 aufgeführt ist.
quelle
Die Antwort eines Phans hat bei mir funktioniert:
Das Hinzufügen der Änderung löst jedoch das Ereignis aus
quelle
Sie können diesen Code verwenden:
Dabei sind 2 in "Nummer: 2" und 3 in "Nummer: 3" ID-Felder im Objektarray
quelle
Manchmal
select2()
wird zuerst geladen, und das Steuerelement zeigt den zuvor ausgewählten Wert nicht korrekt an. Durch eine Verzögerung von einigen Sekunden kann dieses Problem behoben werden.quelle
Es wäre besser, sich
select2
nach Auswahl einer der aktuellen Auswahl zu bewerben .quelle
Ich habe so etwas gemacht, um Elemente in der Dropdown-Liste select2 ajax voreinzustellen
quelle
Du solltest benutzen:
quelle
Wenn Sie ein Eingabefeld verwenden, müssen Sie die Eigenschaft "multiple" mit ihrem Wert als "true" festlegen. Beispielsweise,
quelle
In
select2 < version4
gibt es die OptioninitSelection()
zum Remote-Laden von Daten, über die der Anfangswert für die Eingabe wie im Bearbeitungsmodus festgelegt werden kann.Quelldokumentation : Select2 - 3.5.3
quelle
Nur um noch jemandem etwas hinzuzufügen, der vielleicht das gleiche Problem mit mir hat.
Ich habe versucht, die ausgewählte Option meiner dynamisch geladenen Optionen (von AJAX) festzulegen, und ich habe versucht, eine der Optionen je nach Logik als ausgewählt festzulegen.
Mein Problem trat auf, weil ich nicht versucht habe, die ausgewählte Option basierend auf der ID festzulegen, die mit dem Wert übereinstimmen muss, nicht mit dem Wert, der mit dem Namen übereinstimmt!
quelle
Für mehrere Werte wie folgt:
was zu so etwas führen wird
quelle
Dies kann jemandem helfen, select2-Daten aus AJAX zu laden, während Daten zur Bearbeitung geladen werden ( gilt für Einzel- oder Mehrfachauswahl ):
Während des Ladens meines Formulars / Modells:
Rufen Sie an, um Daten für Select2 auszuwählen:
und wenn Sie Probleme mit der Codierung haben, können Sie dies je nach Anforderung ändern:
quelle
Wenn Sie Ihre Werte von Ajax erhalten, bevor Sie anrufen
Bestätigen Sie mit der jquery-Funktion, wenn der Ajax-Aufruf abgeschlossen ist
quelle
Auf der Antwort von @ tomloprod aufbauen. Durch die ungerade Wahrscheinlichkeit, dass Sie x-editierbar verwenden und ein select2 (v4) -Feld sowie mehrere Elemente haben, die Sie vorab auswählen müssen. Sie können den folgenden Code verwenden:
und hier ist es in Aktion:
Ich denke, dass dies auch dann funktionieren würde, wenn Sie x-editable nicht verwenden. Ich hoffe, dass dies jemandem helfen konnte.
quelle
Sie können diesen Code verwenden:
Geben Sie Ihren gewünschten Wert anstelle von Your_value ein
Hoffe es wird funktionieren :)
quelle
Schön und einfach:
Und du veränderst dich
id_city
zur ID Ihrer Auswahl.Edit: Nach Glen's Kommentar wird mir klar, dass ich erklären sollte, warum und wie es bei mir funktioniert hat:
Ich hatte es
select2
mir sehr gut gemacht, für meine Form zu arbeiten. Das einzige, was ich nicht zum Laufen bringen konnte, war, den aktuell ausgewählten Wert beim Bearbeiten anzuzeigen. Es wurde eine Drittanbieter-API durchsucht, neue gespeichert und alte Datensätze bearbeitet. Nach einer Weile wurde mir klar, dass ich den Wert nicht richtig einstellen musste, sondern nur die Beschriftung im Feld, denn wenn der Benutzer das Feld nicht ändert, passiert nichts. Nachdem ich viele Leute gesucht und gesucht hatte, die Probleme damit hatten, entschied ich mich, es mit reinem Javascript zu machen. Es hat funktioniert und ich habe gepostet, um vielleicht jemandem zu helfen. Ich schlage auch vor, einen Timer dafür einzustellen.quelle