如何从Selectize中删除一个项目

时间:2014-11-11 20:08:17

标签: javascript jquery backbone.js marionette

有什么方法我可以从选择中删除一个项目

  1. AMNT
  2. QTY
  3. NA
  4. 当我通过NA时,它应删除特定项目

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

    这不起作用.. 任何人都可以帮我解决这个问题吗?

4 个答案:

答案 0 :(得分:5)

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

示例 - 打开http://brianreavis.github.io/selectize.js/,打开控制台并输入:

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

从可用选项中删除Chuck Tesla

答案 1 :(得分:2)

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

简而言之,有两个步骤:

  1. 获取所选项目的值
  2. 删除该项目
  3. 显然,您可以将此代码缩小,但为了便于阅读,我已将其留下了详细信息

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

答案 2 :(得分:1)

$(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 :(得分:0)

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