it-swarm.com.de

Festlegen des ausgewählten Werts in Multi-Value Select in Jquery-Select2.?

hallo zusammen, ich binde mein Dropdown mit Jquery-Select2. Es funktioniert gut, aber jetzt muss ich meine Multi-Value-Auswahlbox mit Jquery-Select2 binden.

Mein DropDwon 

    <div class="divright">
                        <select id="drp_Books_Ill_Illustrations" 
                            class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations"
                            multiple="">
                            <option value=" ">No illustrations</option>
                            <option value="a">Illustrations</option>
                            <option value="b">Maps</option>
                            <option value="c">Portraits</option>


                        </select>
                    </div>

Über diesen Link http://ivaynberg.github.com/select2/ Ich verwende das Mutiple Value Select-Feld, mit dem ich mein dropdwon binden kann 

   $("dropdownid").Select2()

es funktioniert gut, aber jetzt muss ich den ausgewählten Wert in den Dropdown-Modus des Bearbeitungsmodus bringen. Ich verwende dieses Beispiel

 $(".Books_Illustrations").select2("val", ["a", "c"]);

es funktioniert, aber wie kann ich meine Wahl korrigieren, weil der Benutzer alles auswählen kann. Also kann ich a, c nicht statisch schreiben. Deshalb muss ich meinen Selected-Wert dynamisch im Bearbeitungsmodus binden.

Ich denke, jetzt sind Sie alle mit meiner Forderung klar. Bitte lassen Sie mich wissen, wenn Sie weitere Freigabe benötigen. 

42
Kaps Hasija

Nun, eigentlich brauchen Sie nur $ .each, um alle Werte zu erhalten, es wird Ihnen helfen jsfiddle.net/NdQbw/5

<div class="divright">
            <select id="drp_Books_Ill_Illustrations" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
                <option value=" ">No illustrations</option>
                <option value="a" selected>Illustrations</option>
                <option value="b">Maps</option>
                <option value="c" selected>selectedPortraits</option>
            </select>
    </div>

<div class="divright">
        <select id="drp_Books_Ill_Illustrations1" class=" Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
            <option value=" ">No illustrations</option>
            <option value="a">Illustrations</option>
            <option value="b">Maps</option>
            <option value="c">selectedPortraits</option>
        </select>
</div>

<button class="getValue">Get Value</button>
<button  class="setValue"> Set  value </button>

<div class="divright">
        <select id="drp_Books_Ill_Illustrations2" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
            <option value=" ">No illustrations</option>
            <option value="a" selected>Illustrations</option>
            <option value="b">Maps</option>
            <option value="c" selected>selectedPortraits</option>
        </select>
</div>

<div class="divright">
        <select id="drp_Books_Ill_Illustrations3" class=" Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
            <option value=" ">No illustrations</option>
            <option value="a">Illustrations</option>
            <option value="b">Maps</option>
            <option value="c">selectedPortraits</option>
        </select>
</div>

<button class="getValue1">Get Value</button>
<button  class="setValue1"> Set  value </button>

Das Skript:

 var selectedValues = new Array();
    selectedValues[0] = "a";
    selectedValues[1] = "c";

$(".getValue").click(function() {
    alert($(".leaderMultiSelctdropdown").val());
});
$(".setValue").click(function() {
   $(".Books_Illustrations").val(selectedValues);
});

$('#drp_Books_Ill_Illustrations2, #drp_Books_Ill_Illustrations3').select2();


$(".getValue1").click(function() {
    alert($(".leaderMultiSelctdropdown").val());
});

$(".setValue1").click(function() {
    //You need a id for set values
    $.each($(".Books_Illustrations"), function(){
            $(this).select2('val', selectedValues);
    });
});
53
jd_7

Ich nehme an, Sie möchten 2 Optionen als Standard auswählen und erhalten dann den Wert davon? Wenn ja:

http://jsfiddle.net/NdQbw/1/

<div class="divright">
    <select id="drp_Books_Ill_Illustrations" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
        <option value=" ">No illustrations</option>
        <option value="a" selected>Illustrations</option>
        <option value="b">Maps</option>
        <option value="c" selected>selectedPortraits</option>
    </select>
</div>

Und um Wert zu bekommen:

alert($(".leaderMultiSelctdropdown").val());

Um den Wert einzustellen:

 $(".leaderMultiSelctdropdown").val(["a", "c"]);

Sie können auch ein Array verwenden, um die Werte festzulegen:

var selectedValues = new Array();
selectedValues[0] = "a";
selectedValues[1] = "c";

$(".Books_Illustrations").val(selectedValues);

http://jsfiddle.net/NdQbw/4/

14
Geert

Ich verstehe, dass dieser Beitrag alt ist, aber es hat sich geändert, wie select2 jetzt funktioniert. Die Antwort auf diese Frage ist jetzt extrem einfach.

Um die Werte in einem Multi Select2 einzustellen, gehen Sie wie folgt vor

$('#Books_Illustrations').val([1,2,3]).change();

Es ist nicht mehr nötig, .select2 in jquery anzugeben, einfach .val

Es kann auch vorkommen, dass Sie das change-Ereignis nicht auslösen möchten, da möglicherweise ein anderer Code ausgeführt wird. Dies ist der Fall, wenn Sie die obige Methode verwenden, um den Wert zu ändern, ohne das change-Ereignis auslösen zu müssen wie so

$('#Books_Illustrations').select2([1,2,3], null, false);
9
Cesar Bielich

Select2-Jquery-Bibliothek verwenden:

$('#selector').val(arrayOfValues).trigger('change')
5
Angie Alejo
var valoresArea=VALUES
// it has the multiple values to set separated by comma
var arrayArea = valoresArea.split(',');
$('#area').select2('val',arrayArea);
5
pankaj yadav

sie können die ausgewählten Werte in eine array hinzufügen und als Wert für die Standardauswahl festlegen

z.B:

var selectedItems =[];
selectedItems.Push("your selected items");
..
$('#drp_Books_Ill_Illustrations').select2('val',selectedItems );

Versuchen Sie dies, das sollte auf jeden Fall funktionieren!

3
Ravi Kiran

Schauen Sie sich das an, es hilft.

var valoresArea=VALUES // it has the multiple values to set, separated by comma
var arrayArea = valoresArea.split(',');
$('#area').val(arrayArea);

die URL ist- link

3
This is with reference to the original question
$('select').val(['a','c']);
$('select').trigger('change');
2
Neelu

es ist nicht notwendig, so viele Dinge zu tun. // wenn die ersten 3 Produkte ausgewählt werden . $ ('# ddlProduct'). val (selectedvalue);

0

Mit der select2-Bibliothek können Sie den Wert auf zwei Arten einstellen 1. Wenn ein einzelner Wert vorhanden ist, können Sie ihn als Zeichenfolge übergeben

$("#elementid").select2("val","valueTobeset")

2. Wenn Sie select2 mit der Multiselect-Option verwenden, können Sie ein Array der Werte an select2 übergeben, und alle diese Werte werden festgelegt

var arrayOfValues = ["a","c"]
$("#elementid").select2("val",arrayOfValues)

denken Sie daran, dass Sie einen einzelnen Wert für Multiselect festlegen können, indem Sie ein Array auch so übergeben 

var arrayOfValues = ["a"]
$("#elementid").select2("val",arrayOfValues)
0
Omkar Bandkar

Das geht nicht. Es wird immer nur ein Wert vorgewählt, auch wenn beide Optionen in der Liste verfügbar sind. Nur die erste wird angezeigt ('#searchproject').select2('val', ['New Co-location','Expansion']);

0
djack109