【问题标题】:Append Options To bootstrap dual List将选项附加到引导双重列表
【发布时间】:2020-10-01 17:29:24
【问题描述】:

var demo2 = $('#tree_listbox').bootstrapDualListbox({
  nonSelectedListLabel: 'Non-selectedsss',
  selectedListLabel: 'Selected',
  moveOnSelect: false,
});

var data = [
  {
    "id": 194,
    "name": "Endüstri Mühendisliği",
    "selected": true
  },
  {
    "id": 201,
    "name": "Bilgisayar Mühendisliği",
    "selected": false
  }
]

$.each(data, function(i, item) {
  let $option = $(`<option value=${item.id}>${item.name}</option>`);
  $option.prop('selected', item.selected);
  demo2.append($option);
});

demo2.trigger('bootstrapduallistbox.refresh', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap4-duallistbox/4.0.2/jquery.bootstrap-duallistbox.min.js" integrity="sha512-l/BJWUlogVoiA2Pxj3amAx2N7EW9Kv6ReWFKyJ2n6w7jAQsjXEyki2oEVsE6PuNluzS7MvlZoUydGrHMIg33lw==" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap4-duallistbox/4.0.2/bootstrap-duallistbox.css" integrity="sha512-8TCY/k+p0PQ/9+htlHFRy3AVINVaFKKAxZADSPH3GSu3UWo2eTv9FML0hJZrvNQbATtPM4fAw3IS31Yywn91ig==" crossorigin="anonymous"
/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap4-duallistbox/4.0.2/bootstrap-duallistbox.min.css" integrity="sha512-BcFCeKcQ0xb020bsj/ZtHYnUsvPh9jS8PNIdkmtVoWvPJRi2Ds9sFouAUBo0q8Bq0RA/RlIncn6JVYXFIw/iQA==" crossorigin="anonymous"
/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap4-duallistbox/4.0.2/jquery.bootstrap-duallistbox.js" integrity="sha512-hRO4YVWE+x8AYSMHzjmUDFvzGu6hBQKaTfMHACH+mmrbQj34rbHpgMqo/9yQvl1GibrxqxvTB6P0oClLGHKzsw==" crossorigin="anonymous"></script>

<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<div class="row">
  <div class="col-md-12">
    <div class="form-group">
      <input type="hidden" id="selected_item" name="selected_item" />

      <select multiple="multiple" size="10" class="   " id="tree_listbox" name=" ">

      </select>

    </div>

  </div>
</div>

我正在尝试使用 ajax 从数据库中检索数据并将数据附加到引导对偶列表中,但问题是当项目的属性选择为 true 时,我无法附加到所选列表 这是我定义双列表框的方式

 var demo2 = $('.demo2').bootstrapDualListbox({
     nonSelectedListLabel: 'Non-selected',
     selectedListLabel: 'Selected',
     preserveSelectionOnMove: 'moved',
     moveOnSelect: false,
     nonSelectedFilter: 'ion ([7-9]|[1][0-2])'
 });

这是我的代码

 $('#selected_item').val(id);
     $.getJSON("/admin/ISIM/Get_Tree", {Mngid:Mngid,item_id:id},function (data) {
         $('#tree_listbox').empty();

         var items;
         $.each(data, function (i, item) {
             console.log(item);
             var o = document.createElement("option");
             if(item.selected==true)
              var o=   "<option value='" + item.id + "' selected >" + item.name + "</option>"
             else
                 var o=   "<option value='" + item.id + "'>" + item.name + "</option>"
             console.log(o);

           demo2.append(o)

       </option>");
         });

     })

但这段代码实际上并没有附加到选定的列表中,它只是突出显示鼠标选中的选定项,而不是将其插入到选定中

【问题讨论】:

  • demo2 定义在哪里?

标签: javascript jquery bootstrap-4 bootstrap-duallistbox


【解决方案1】:

添加选项元素后触发refresh函数并将trigger的第二个参数设置为true以取消选择所有亮点。

$('#selected_item').val(id);
$.getJSON("/admin/ISIM/Get_Tree", {Mngid:Mngid,item_id:id},function (data) {
  $('#tree_listbox').empty();

  $.each(data, function(i, item) {
    let $option = $(`<option value="${item.id}">${item.name}</option>`);
    $option.prop('selected', item.selected);
    demo2.append($option);
  });

  demo2.bootstrapDualListbox('refresh', true);
});

【讨论】:

  • 非常感谢,实际上它有效但并不完美,因为当我加载数据时,我在两个选中的未选中的框中都得到了空列表,直到我单击一个移动按钮,然后元素出现,另一个问题是我不能一个一个移动,当我选择一个元素并尝试将它移动到另一个列表时它会移动所有元素,谢谢\
  • 可能没有触发刷新。我尝试了另一种变体并将其放在循环之后。如果这不尝试构建一个我们可以自己运行的 sn-p 来运行您的代码。任何其他问题都应被视为新问题并要求发布新帖子。
  • 非常感谢,但它仍然无法正常工作,我试图发布另一个问题,但自动系统检测到我已经发布它并拒绝它
  • 我更新了代码并创建了截断的代码,它有一些错误,请检查它
猜你喜欢
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 2017-03-25
  • 2015-08-05
相关资源
最近更新 更多