【问题标题】:How to remove or disable patosai tree multiselect如何删除或禁用 patosai 树多选
【发布时间】:2017-02-24 02:30:20
【问题描述】:

正如标题所说 我在删除或禁用选择选项树多选 patosai 时遇到问题。实际上禁用或删除正在工作,但显示不会重新渲染。 任何的想法?这里jsfiddle

<input id="checkedTree" type="text"/>
<select id="test-select">
  <option value="1" data-section="fruit">Banana</option>
  <option value="2" data-section="fruit">Apple</option>
  <option value="3" data-section="fruit">Avocado</option>
  <option value="4" data-section="fruit">Pineapple</option>
  <option value="5" data-section="fruit">PenPineappleApplePen</option>
  <option value="6" data-section="animal">Tiger</option>
  <option value="7" data-section="animal">Lion</option>
  <option value="8" data-section="animal">Pitbull</option>
  <option value="9" data-section="animal">OrangUtan</option>
  <option value="10" data-section="animal">Marsupilami Yellow cartoon</option>
</select>

<button id="dis" onclick = "disableSelect()">
Remove apple and avocado
</button>

    $( document ).ready(function() {
    var $select = $('#test-select');
    $select.treeMultiselect({ 
    enableSelectAll: true,
    sortable: false, 
    searchable: true,
    startCollapse: true,
    onChange:function(){
        if ($select.val() != null){
            document.getElementById("checkedTree").value = $select.val();
        }else{
            document.getElementById("checkedTree").value = "";
        }   
    }

    });

});


  function disableSelect(){
  document.getElementById("test-select").remove(2);
  document.getElementById("test-select").remove(2); 
    //document.getElementById("checkedTree").value = "success";
  }

它的工作证明,我在检查那些苹果和鳄梨时得到的值是空的......

顺便说一句,有没有办法在同一页面上使用 patosai 树多选进行 2 选择?怎么样?

【问题讨论】:

    标签: javascript html drop-down-menu multi-select


    【解决方案1】:

    该库实际上改变了您的选择框的 HTML 结构。你已经提供了这个

    <select id="test-select">
      <option value="1" data-section="fruit">Banana</option>
      <option value="2" data-section="fruit">Apple</option>
      <option value="3" data-section="fruit">Avocado</option>
      <option value="4" data-section="fruit">Pineapple</option>
      <option value="5" data-section="fruit">PenPineappleApplePen</option>
      <option value="6" data-section="animal">Tiger</option>
      <option value="7" data-section="animal">Lion</option>
      <option value="8" data-section="animal">Pitbull</option>
      <option value="9" data-section="animal">OrangUtan</option>
      <option value="10" data-section="animal">Marsupilami Yellow cartoon</option>
    </select>
    

    但是当使用patosai的插件时,会变成下面这样

    <div class="section" data-key="0">
      <div class="title"><span class="collapse-section">-</span>
        <input class="section" type="checkbox">fruit</div>
      <div class="item" data-key="0" data-value="1">
        <input class="option" type="checkbox" id="treemultiselect-0-0">
        <label for="treemultiselect-0-0">Banana</label>
      </div>
      <div class="item" data-key="3" data-value="4">
        <input class="option" type="checkbox" id="treemultiselect-0-3">
        <label for="treemultiselect-0-3">Pineapple</label>
      </div>
      <div class="item" data-key="4" data-value="5">
        <input class="option" type="checkbox" id="treemultiselect-0-4">
        <label for="treemultiselect-0-4">PenPineappleApplePen</label>
      </div>
    </div>
    <div class="section" data-key="1">
      <div class="title"><span class="collapse-section">-</span>
        <input class="section" type="checkbox">animal</div>
      <div class="item" data-key="5" data-value="6">
        <input class="option" type="checkbox" id="treemultiselect-0-5">
        <label for="treemultiselect-0-5">Tiger</label>
      </div>
      <div class="item" data-key="6" data-value="7">
        <input class="option" type="checkbox" id="treemultiselect-0-6">
        <label for="treemultiselect-0-6">Lion</label>
      </div>
      <div class="item" data-key="7" data-value="8">
        <input class="option" type="checkbox" id="treemultiselect-0-7">
        <label for="treemultiselect-0-7">Pitbull</label>
      </div>
      <div class="item" data-key="8" data-value="9">
        <input class="option" type="checkbox" id="treemultiselect-0-8">
        <label for="treemultiselect-0-8">OrangUtan</label>
      </div>
      <div class="item" data-key="9" data-value="10">
        <input class="option" type="checkbox" id="treemultiselect-0-9">
        <label for="treemultiselect-0-9">Marsupilami Yellow cartoon</label>
      </div>
    </div>
    

    这意味着您必须以不同的方式选择元素。我已经检查了文件,您需要的是以下内容;

    function disableSelect() {
      $('.item[data-value="2"]').remove(); // removes apple
      $('.item[data-value="3"]').remove(); // removes avocado
    }
    

    删除这两个元素。这是一个更新的小提琴,可以自己检查:https://jsfiddle.net/htumxL5r/1/

    【讨论】:

    • 谢谢@KarelG,您的代码可以正常工作,但如果我选择全部,我仍然会得到全部值 (1-10),它应该是 (1,3-10)。有没有办法重新渲染?
    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 2017-10-30
    • 2012-07-03
    • 2021-05-21
    • 2015-01-04
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多