Ich möchte in der Lage sein, den Standard/ausgewählten Wert eines Select-Elements mit dem JQuery Select2-Plugin zu setzen.JQuery select2 den Standardwert aus einer Option in der Liste setzen?
Antwort
Eine Möglichkeit, dies zu tun ist ...
$('select').select2().select2('val', $('.select2 option:eq(1)').val());
Also im Grunde Sie zuerst initialisieren das Plugin dann den Standardwert geben Sie den ‚val‘ Parameter verwendet wird. Der tatsächliche Wert wird von der angegebenen Option genommen, in diesem Fall # 1. Der ausgewählte Wert aus diesem Beispiel wäre also "bar".
<select class=".select2">
<option id="foo">Some Text</option>
<option id="bar">Other Text</option>
</select>
Hope das ist nützlich für jemand anderen.
Ein weiterer Weg - fügen Sie einfach ein selected = "selected"
Attribut zum select
Markup hinzu und rufen Sie select2
darauf an. Es muss Ihren ausgewählten Wert annehmen. Keine Notwendigkeit für zusätzliches JavaScript. Wie folgt aus:
Markup
<select class="select2">
<option id="foo">Some Text</option>
<option id="bar" selected="selected">Other Text</option>
</select>
JavaScript
$('select').select2(); //oh yes just this!
Siehe Geige: http://jsfiddle.net/6hZFU/
Edit: (! Danke, Jay Haase)
Wenn dies nicht funktioniert, versuchen Sie die val
Eigenschaft select2
zu null
Einstellung, um den Wert zu löschen, wie folgt aus:
$('select').select2("val", null); //a lil' bit more :)
Danach ist es einfach genug val
-"Whatever You Want"
einzustellen.
Ich konnte das obige JavaScript nicht für mich arbeiten lassen. Ich habe folgendes zur Arbeit gebracht: $ ("# id"). Select2 ("val", null); –
obigen Code funktioniert gut für Einzelwert, aber im Falle von mehreren Werten wird nur ein Wert ausgewählt –
$("#id").select2("val", null); //this will not work..you can try
Sie sollten dies tatsächlich tun ... initialisieren und dann den Wert einstellen. Nun, das ist auch die Art, wie es für mich funktionierte.
$("#id").select2().select2("val", null);
$("#id").select2().select2("val", 'oneofthevaluehere');
Für ajax select2 mehrere Dropdown wählen ich mochte dies;
//preset element values
//topics is an array of format [{"id":"","text":""}, .....]
$(id).val(topics);
setTimeout(function(){
ajaxTopicDropdown(id,
2,location.origin+"/api for gettings topics/",
"Pick a topic", true, 5);
},1);
// ajaxtopicDropdown is dry fucntion to get topics for diffrent element and url
$('select').select2("val",null);
Bitte bearbeiten Sie mit mehr Informationen. Code-only und "try this" Antworten werden abgeraten, da sie keine durchsuchbaren Inhalte enthalten und nicht erklären, warum jemand "das versuchen sollte". Wir bemühen uns, eine Ressource für Wissen zu sein. –
Die obigen Lösungen für mich nicht funktioniert hat, aber dieser Code aus eigenen Website Select2 tat:
$('select').val('US'); // Select the option with a value of 'US'
$('select').trigger('change'); // Notify any JS components that the value changed
hoffe, das hilft für jedermann, wie kämpft, Ich war.
Wenn Sie ein Array-Datenquelle verwenden, können Sie so etwas wie unten tun -
$(".select").select2({
data: data_names
});
data_names.forEach(function(name) {
if (name.selected) {
$(".select").select2('val', name.id);
}
});
Dies setzt voraus, dass das ein Element aus Ihrem Datensatz, die Sie festlegen möchten als Standard bezeichnet ein zusätzliches Attribut ausgewählt und wir verwenden das, um den Wert festzulegen.
Für 4.x Version
$('#select2Id').val(__INDEX__).trigger('change');
Wert mit INDEX wählen
$('#select2Id').val('').trigger('change');
nichts zu wählen (Show Platzhalter, wenn es)
Ihre HTML-Markup hat ein Klasse mit einem '.' darin. Im Grunde wird Ihr Code den Wert nicht festlegen, weil Sie das falsche Element auswählen. – krishgopinath
oder eher ein Element, das nicht existiert :) – krishgopinath
Wenn Sie nach dem Setzen eines ausgewählten Wertes die Schaltfläche zum Löschen benötigen, verwenden Sie: $ ('. Select'). Select2 ({allowClear: true}). Select2 ('val', $ ('.select2-Option: eq (1)'). val()); –