我想知道如何在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/