我想知道如何在Selectize.js输入中获取当前所选项目的值?我检查了文档,并检查了与Stackoverflow相关的所有selectize.js,但没有发现我可以采用的示例方式。有任何想法吗?这是我认为可以根据文档工作的内容,但是却给了我Undefined is not a function错误。

请注意代码的最底部,我使用select.on('change';这(除了其他API方法)是我尝试过的。不断变化的效果很好,但不幸的是没有其他东西。

var select = $('#searchTextbox').selectize({
          maxItems: 1, //Max items selectable in the textbox
          maxOptions: 30, //Max options to render at once in the dropdown
          searchField: ['text'], //Fields the autocomplete can search through.  Example of another searchable field could be 'value'
          openOnFocus: true,
          highlight: true,
          scrollDuration: 60, //currently does nothing; should say how many MS the dropdown and drop up animations take
          create: false, //Whether or not the user is allowed to create fields
          selectOnTab: true,
          render: {
              option: function(data, escape) {
                  var valueArray = [];
                  valueArray[0] = data.value.split(",");
                  var color = valueArray[0][0] == "1" ? "green" : "red";

                  return '<div class="option" style="color: '
                      + color
                      + ';">'
                      + escape(data.text)
                      + '</div>';
              },
              item: function(data, escape) {
                  var valueArray = [];
                  valueArray[0] = data.value.split(",");
                  var color = valueArray[0][0] == "1" ? "green" : "red";

                  return '<div class="option" style="color: '
                      + color
                      + ';">'
                      + escape(data.text)
                      + '</div>';
              }
          }
      });

select.on('change', function() {
      var test = select.getItem(0);
      alert(test.val());
});

最佳答案

发现了问题!

对于使用selectize.js且API出现问题的任何人,请尝试一下!

如果您看一下我初始化selectize.js下拉菜单的代码部分,则将实例存储在我的“select”变量中,就是这样。但是,这不是做事情的正确方法(至少从我所见)。您需要执行以下操作,而不是简单地将实例存储在变量中。

var $select = $("#yourSelector").selectize({
    //options here
});

var selectizeControl = $select[0].selectize

完成此操作后,您可以正确使用API​​。不这样做,我收到了Undefined is not a function错误。

最后,要回答我自己的问题,我可以使用以下代码来检索selectize输入的当前值(显然不需要.on('change')和alert):
selectizeControl.on('change', function() {
      var test = selectize.getValue();
      alert(test);
});

我不确定为什么要这样做的必要性。也许有人可以启发我和任何 future 的观众,以了解为什么这种方式有效,而我以前的方法无效。

我希望这会在将来对其他人有所帮助。随时编辑和进行任何更改。

关于javascript - 如何获取当前选定的Selectize.js输入项的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24666297/

10-09 23:30