【问题标题】:How to remove an item from Selectize?如何从 Selectize 中删除项目?
【发布时间】:2015-01-08 12:22:22
【问题描述】:

有什么方法可以从 Selectize 中删除项目?

这是我的示例列表:

  1. AMNT
  2. 数量
  3. 不适用

当我通过 NA 时,它应该删除特定项目:

   $.fn.removeSelectorValue = function (value) {
      var selectize = this[0].selectize;
      selectize.removeItem(value);

      return this;
   };

这不起作用。谁能帮我解决这个问题?

【问题讨论】:

    标签: javascript jquery selectize.js


    【解决方案1】:

    removeItem 删除由给定值标识的选定项。要从列表中删除选项,您应该使用 removeOption

    例子——打开http://brianreavis.github.io/selectize.js/,打开控制台输入:

    $('#select-beast')[0].selectize.removeOption(1)
    

    从可用选项中删除 Chuck Tesla

    【讨论】:

    • 我认为它对我不起作用,选项来自枚举的服务器
    • 如果我理解正确,您想在用户选择时从列表中删除选项,例如当用户选择 AMNT 时,列表仅包含 QTY、NA。如果不是这种情况,请从用户角度解释问题。
    • 我不想删除选定的选项,我在 onShow 时有 3 个来自服务器的列表,但我不希望这三个列表(数量,amnt,na)显示。 onShow 本身我必须删除该选项。不是在选择之后。我正在为此使用 Backbone、Marionette 和 Selectize。我的选择器是这样的 this.ui.__el_String__xyzSelector()
    • 这个 xyzSelector 有一些代码会以查找方式返回列表
    • 这种方法的唯一问题是,如果选中的项目是要删除的项目,它会最小化选择框并且看起来有问题,请告诉我你是否找到了解决方案。跨度>
    【解决方案2】:
    $(document).on('click', 'div.selectize-input div.item', function(e) {
        var select = $('#services').selectize();
        var selectSizeControl = select[0].selectize;
        // 1. Get the value
        var selectedValue = $(this).attr("data-value");
        // 2. Remove the option 
        select[0].selectize.removeItem(selectedValue);
    
        select[0].selectize.refreshItems();
        select[0].selectize.refreshOptions();
    
    });
    

    此代码不会从选择中删除该项目,只是将其从所选选项中删除。

    【讨论】:

    • 感谢您的回复,第一个答案对我来说很好。
    【解决方案3】:

    我迟到了,但其他方法对我不起作用,我不知道是不是因为我从远程来源拉了一个列表?

    简而言之有2个步骤:

    1. 获取选中项的值
    2. 删除该项目

    你显然可以让这段代码更小,但为了便于阅读,我把它写得很冗长

    var $select = $('#users').selectize(); 
    var selectSizeControl = $select[0].selectize; 
    // 1. Get the value
    var selectedValue = selectSizeControl.getValue()
    // 2. Remove the option 
    selectSizeControl.removeOption( selectedValue )
    

    【讨论】:

      【解决方案4】:

      最近正在实现这一点,如果您删除最后一项,输入看起来有问题(如上所述)。一个解决方法(有点hackish)在onItemRemove函数中,找到保存项目的长度,如果length == 0,使用jQuery来修复输入-$('.selectize-input').css({'height':'35px'});

      【讨论】:

        猜你喜欢
        • 2021-10-19
        • 1970-01-01
        • 2013-05-01
        • 2017-02-14
        • 2019-05-01
        • 2019-05-29
        • 2017-07-21
        • 1970-01-01
        相关资源
        最近更新 更多