使用数组或字符串设置Semantic-UI下拉列表

时间:2018-03-17 06:20:59

标签: javascript jquery semantic-ui

该片段是我得到的,通过手动设置选择1 1,它工作。 但是我想以编程方式执行它,例如将包含["2", "3", "4"]的字符串或数组传递给set selected: array,或者我可以插入从ajax接收的数组的任何其他方式。



$('.ui.dropdown').dropdown('set selected', ["1", "2"]);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.0/semantic.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.0/semantic.min.js"></script>
<select multiple class="ui dropdown" name="event">
    <option value="">Select Service</option>
    <option value="1">opt 1</option>
    <option value="2">opt 2</option>
    <option value="3">opt 3</option>
    <option value="4">opt 4</option>
    <option value="5">opt 5</option>
</select>
&#13;
&#13;
&#13;

我也尝试使用下面的远程内容,但selected似乎不起作用。

json输出:

"success": true,
"results": [
  {
    "name"  : "Choice 1",
    "value" : "value1",
    "selected" : true
   }

阅读远程内容:

 $('.ui.dropdown.state').dropdown({
  apiSettings: {
     url: '//api.semantic-ui.com/tags/{query}'
  },
   filterRemoteData: false
}); `

1 个答案:

答案 0 :(得分:0)

解决了它。我的错误是我在ajax onload方法之外调用数组。通过在set selected调用内调用循环内的onload,解决了它。 selectedArray应包含目标选项的值。

for(var i=0, len=selectedArray.length; i <len; i++){
   $('.ui.dropdown.state').dropdown('set selected', selectedArray[i]);
}