javascript - 在非多个选择框上使用 Selectize API

标签 javascript jquery selectize.js plunker

我有一个简单的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 调用都会按预期工作。

我创建了a Plunker showing the issue .

我做错了什么?

最佳答案

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

要添加选项,您必须为选项提供值属性,而您只提供文本属性。

因此,如果您只是想获取所选值,请使用:

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

关于javascript - 在非多个选择框上使用 Selectize API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327681/

相关文章:

javascript - 创建一个 web 服务 "activity indicator"-like 与所有浏览器兼容的指标

javascript - 如何将数据装箱到数组中但包含以前的值?

javascript - 多个文件中的 promise

javascript - 如何在 Javascript 中查询 Dbpedia

javascript - JQuery FlipTimer 单击开始/停止

javascript - 使用 jquery 操作元素不起作用

jquery - 保留 CSS :hover After jQuery CSS Changes

javascript - 如何从 Controller 选择插件中选择多个值

javascript - 强制 selectize.js 仅显示以用户输入开头的选项