多选选项不会使用jquery刷新

时间:2016-08-01 06:51:31

标签: jquery multi-select

我正在使用多选jquery插件,我想随机选择一些选项。我正确地随机化多选,但我的多选不显示所选项目。如果我在document.ready中使用相同的代码,它可以正常工作,但当我在按钮事件中使用它时,多选不显示所选项目。

有什么问题?

$(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。

感谢。

2 个答案:

答案 0 :(得分:0)

有技巧..我希望它有效

$(&#39;#my-select&#39;)。multiselect(&#39; select&#39;,vals);

我不确定它是否有效,因为我没有测试过。

答案 1 :(得分: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/