如何清除选定的值selectize.js下拉列表

Pra*_*ngh 34 javascript jquery selectize.js

我有一个selectize.js下拉菜单,我必须清除所选的值.

我试过了 :

var selectize = $("#optionNetFlow")[0].selectize;
selectize.clear();
Run Code Online (Sandbox Code Playgroud)

如另一个问题中所建议的如何以编程方式设置selectize.js选项列表.但它给出了一个错误,

Uncaught TypeError: Cannot read property 'selectize' of undefinedmessage: "Cannot read property 'selectize' of undefined"stack: (...)get stack: function () { [native code] }arguments: nullcaller: nulllength: 0name: ""prototype: StackTraceGetterconstructor: function () { [native code] }__proto__: Object__proto__: function Empty() {}<function scope>set stack: function () { [native code] }__proto__: Error
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我把它改为:

    var selectize = $("#optionNetFlow").selectize;
    selectize.clear();
Run Code Online (Sandbox Code Playgroud)

我给出了错误:

TypeError: undefined is not a functionmessage: "undefined is not a function"stack: (...)get stack: function () { [native code] }set stack: function () { [native code] }__proto__: Error VM1253:3(anonymous function) VM1253:3InjectedScript._evaluateOn VM1251:732InjectedScript._evaluateAndWrap VM1251:665InjectedScript.evaluate VM1251:579
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我在这做错了什么?

Pra*_*ngh 68

我终于在这里找到了答案Selectize.js演示

对我有用的是:

 var $select = $('#optionNetFlow').selectize();
 var control = $select[0].selectize;
 control.clear();
Run Code Online (Sandbox Code Playgroud)

var $select = $('#optionNetFlow').selectize();在应用上述问题答案中提供的解决方案之前,我所缺少的是什么.

现在我要在控制台中获得所有功能:

在此输入图像描述


Adi*_*ngh 11

试试这个: - http://jsfiddle.net/adiioo7/2gnq1ruv/204/

JS: -

jQuery(function ($) {
    var $select = $('#input-tags').selectize({
        persist: false,
        create: true
    });

    $("#btnClear").on("click", function () {
        var selectize = $select[0].selectize;
        selectize.clear();

    });
});
Run Code Online (Sandbox Code Playgroud)

  • @astroanu - 它说“在取消选择后保留选项?” 作为一个布尔标志,基本上。来源是用法文档:https://github.com/selectize/selectize.js/blob/master/docs/usage.md (2认同)

小智 9

试试这个,

$("#optionNetFlow")[0].selectize.clear();
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的方法,您不必在初始化时将选择性存储在全局变量中,只需在需要时调用它. (3认同)

san*_*e89 8

所有其他答案要么清除单个选择,要么在创建时需要对选择的特定引用。

另一方面,下面的解决方案适用于您在任何表单中拥有的任意数量的 selectize 元素;您只需要指定所需的形式:

$('form').find('.selectized').each(function(index, element) { element.selectize && element.selectize.clear() })
Run Code Online (Sandbox Code Playgroud)

基本原理是 Selectize 保留 DOM 中的原始元素(隐藏它),.selectize在 DOM 元素的属性上添加对 selectize 的引用,并向其添加 CSS 类selectized

因此该解决方案找到所有具有 CSS 类的元素selectized,循环遍历它们并调用element.selectize.clear().