我正在使用多选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。
感谢。
答案 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");
});