2

我有一个简单的Selectize设置,我正在尝试使用它getOptionaddOption方法。

<select id="select">
  <option value="0">Thomas Edison</option>
  <option value="1">Nikola</option>
  <option value="3">Nikola Tesla</option>
  <option value="2">Arnold Schwarzenegger</option>
</select>
<button id="get-option">Get option</button>
<button id="add-option">Add option</button>

我写了一些 JS 来调用我的 selectize 实例上的方法:

jQuery(function() {
  var selectize = $('#select').selectize()[0].selectize;

  $('#add-option').on('click', function() {
    selectize.addOption({ text: 'Peter Pan' });
  });

  $('#get-option').on('click', function() {
    console.log('Get option:', selectize.getOption(2)[0]);
  });
});

不幸的是,该addOption功能似乎没有向选择框添加选项。更糟糕的是,getOption电话只是返回undefined。此外,如果我添加multiple<select>标签中,那么两个 API 调用都会按预期工作。

我创建了一个显示问题的 Plunker

我究竟做错了什么?

4

1 回答 1

2

当您有一个不是多个选择时,您可以使用它selectize.getValue()来检索当前值。

并且要添加一个选项,您必须为该选项提供一个 value 属性,并且您只提供 text 属性。

因此,如果您只是想获得选定的值,请使用:

jQuery(function() {
  var selectize = $('#select').selectize()[0].selectize;

  $('#add-option').on('click', function() {
    selectize.addOption({ value: 99, text: 'Peter Pan' });
  });

  $('#get-option').on('click', function() {
    console.log('Get option:', selectize.getValue());
  });
});

但是在您的示例中,尝试获取值为 2 的选项似乎是多余的;你知道值是 2。如果你能进一步解释你想要达到的目标,也许我可以提供进一步的帮助。

文档可能更清楚,但它都在那里。https://github.com/brianreavis/selectize.js/blob/master/docs/api.md#methods_options

于 2014-07-03T15:58:15.037 回答