如何使用Selectize.js以编程方式使特定选项无法选择?

我有一个选择有几个选项,我尝试以编程方式使一些选项无法选择。 例如,我的代码是:

 Value 1 Value 2 Value 3   $('select').selectize();  

我的问题是:如何以编程方式禁用选项“2”(即不显示和不可选)? – 我试过这段代码……

 $('select')[0].selectize.$dropdown_content.find('[data-value="2"]').removeAttr('data-selectable'); 

…但它不起作用(当我检查DOM时,我看到选项“2”没有“数据可选择”属性,但它仍然呈现并且是可选择的……)。

我错了吗? 如果是这样的话:什么是使选项无法选择的正确方法(我在文档中的任何地方找不到它)?

(我在这里创建了一个jsFiddle: http : //jsfiddle.net/j8YUA/3/ )

您可以使用disabledField设置在呈现选项时以编程方式选择“无法选择”选项。 您也可以在事后使用updateOption方法创建一个“unselectable”选项(或者您只需使用removeOption方法删除该选项)例如:

 const options = [ {name: 'Option 1', disable: false}, {name: 'Option 2', disable: true} ]; const sel = $('#select1').selectize({ options: options, valueField: 'name', labelField: 'name', searchField: ['name'], disabledField: 'disable' }); $('#button1').click(() => { sel[0].selectize.updateOption('Option 1', {name: 'Option 1', disable: true}); }); $('#button2').click(() => { sel[0].selectize.removeOption('Option 2'); }); 
      Selectize    
Option 2 disabled

选择选项存储在对象$('select')[0].selectize.options ,因此要删除选项,您应该从选项对象中删除相应的属性

  delete $('select')[0].selectize.options["2"];