2016-08-01 3 views
0

Я использую многопользовательский jQuery-плагин, и я хочу выбрать некоторые параметры случайным образом. Я произвольно выбираю мультибот, но мой мультивыбор не отображает выбранные элементы. Если я использую тот же код в document.ready, он отлично работает, но когда я использую его в событии с несколькими кнопками, не отображается выбранный элемент.Множественный выбор не обновляется с помощью jquery

В чем проблема?

$(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"); 
    }); 
}); 

Вот мой код множественного выбора:

<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> 

и моя vals переменная 1,3,7.

Спасибо.

ответ

0

есть на трюк .. Я надеюсь, что это работает

$ ('# мой, выберите') MultiSelect ('выберите', Vals).

Я не уверен, что он работает, поскольку я не тестировал.

+0

еще не работает. –

+0

попробуйте с моим отредактированным ответом, $ ('# my-select'). Multiselect ('select', vals); –

+0

здесь документ предоставлен для многосекторальной библиотеки .. http://davidstutz.github.io/bootstrap-multiselect/#methods –

0

Я не знаю, что вы пытаетесь сделать, но это должно выбрать случайные элементы из выбранного

$(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"); 
    }); 

демо: https://jsfiddle.net/h86zdg57/

+0

Не работает. –

Смежные вопросы