在不触发item_add事件的情况下填充selectize.js字段



如何在不触发item_add的情况下selectize.addItem("value")


我有一个标签字段,它依赖于另一个选择。每当其他选择发生更改时,我需要自动填充标记,然后每当用户添加或删除标记时,我都需要让监听器运行代码。我不知道如何在不触发item_add事件的情况下以编程方式添加标签,但我不希望它在用户触摸标签之前触发。

(有addItem(…, silent),但除非我弄错了,否则这只会阻止它触发change事件。)

样本代码:

$('#input-tags').selectize({
onItemAdd: function() {
alert("This should only appear by user action");
}
});
$tags = $('#input-tags')[0].selectize;
$tags.addItem("awesome");
$tags.addItem("neat");

JSFiddle

一个解决方案(也是我所知道的唯一一个)是在addItem之前删除事件侦听器,然后再添加它们。然而,这似乎并不理想,尤其是如果需要多次这样做的话。

添加所有初始值后,您可以转换代码以注册添加回调:

$('#input-tags').selectize();
$tags = $('#input-tags')[0].selectize;
$tags.addItem("awesome");
$tags.addItem("neat");
// Register the listener once you have initialized the selectize component.
$tags.on('item_add', function() {
alert("This should only appear by user action");
});

相关内容

  • 没有找到相关文章

最新更新