2016-08-01 30 views
0

Ich benutze ein Multi-Select-Jquery-Plugin und ich möchte einige Optionen zufällig auswählen. Ich sortiere die Mehrfachauswahl korrekt, aber meine Mehrfachauswahl zeigt keine ausgewählten Elemente an. Wenn ich denselben Code in document.ready verwende, funktioniert es gut, aber wenn ich es in einem Button-Ereignis verwende, zeigt Multi-Select ausgewählte Elemente nicht an.Multi-Auswahl-Option wird nicht mit Jquery aktualisiert

Was ist das Problem?

$(document).ready(function(){ 
    $('#my-select').searchableOptionList(); 
    $(document).on("click", ".btn-primary", function() { 
     var count=$(this).attr("data-random-max"); 
     randomElements = jQuery("#my-select option").get().sort(function(){ 
      return Math.round(Math.random())-0.5 
     }).slice(0,count); 
     var vals = new Array(); 
     $(randomElements).each(function(){ 
      vals.push($(this).val()); 
     }); 
     $("#my-select").val(vals); 
     $("#my-select").multiselect("refresh"); 
    }); 
}); 

Hier ist meine Multi-Auswahlcode:

<select style="margin-top: 20px; display: none;" multiple="multiple" id="my-select"> 
    <optgroup label="ساده"> 
    </optgroup> 
    <optgroup label="متوسط"> 
     <option value="1">سیب</option> 
     <option value="3">آیا در انجام مسیولیت کوشا هستید؟</option> 
    </optgroup> 
    <optgroup label="سخت"> 
     <option value="7">آیا آماده است؟</option> 
    </optgroup> 
</select> 

und meine vals Variable ist 1,3,7.

Danke.

Antwort

0

haben auf Trick .. Ich hoffe, es funktioniert

$ ('# my-select') Mehrfachauswahl ('wählen', vals).

Ich bin nicht sicher, dass es funktioniert, wie ich nicht getestet habe.

+0

Noch nicht arbeiten. –

+0

versuche mit meiner bearbeiteten Antwort, $ ('# my-select') multiselect ('select', vals); –

+0

hier Dokument für Multiselect-Bibliothek zur Verfügung gestellt .. http://davidstutz.github.io/bootstrap-multiselect/#methods –

0

Ich weiß nicht, was Sie zu tun versuchen, aber dies sollte zufällige Elemente aus der Auswahl

$(document).on("click", ".btn-primary", function() { 
     var count=$(this).attr("data-random-max"); 
     var len = $("#my-select option").length; 
     for (var i = 0;i < count;i++) { 
     var index = Math.floor(Math.random()*len) + 1; 
     $("#my-select option").eq(index).attr('selected','selected'); 
     } 

     $("#my-select").multiselect("refresh"); 
    }); 

Demo wählen: https://jsfiddle.net/h86zdg57/

+0

Noch funktioniert nicht. –