我正在尝试在单个搜索选择下拉列表中使用allowAdditions: true
设置,并且它的行为与预期一致,但我试图让它的行为略有不同,并且无法找到任何示例或文档建议如何如果可能的话,可以做到。
现在,当我输入一个新值时,它只是设置隐藏输入的值,就是这样。我想要的是让它实际上将该项添加到菜单中,而不仅仅是设置输入值。
或者,是否有回调让我知道何时添加了自定义值,以便我可以在javascript中处理其余部分。我已经尝试了onLabelCreate
回调,但我认为这只适用于多选下拉列表,因此它永远不会被解雇
修改
好的,看起来这是一个已知的错误https://github.com/Semantic-Org/Semantic-UI/issues/5759,但对回调问题没有帮助。
现在作为可怕的解决方法,我在页面加载时保留了下拉列表内容的列表,然后在onChange
回调被触发时,检查是否新选择值存在于列表中。如果没有,则它将新的菜单项添加到下拉列表中,选择它,然后添加到已知项目列表中。可怕的黑客,但它现在有效
答案 0 :(得分:0)
您提到的解决方法还有一种选择,在onChange()
回调中,您可以检查$choice
(与元素相对应的第三个参数)是否具有类addition
,如下所示:< / p>
$('.dropdown').dropdown({
ignoreCase: true,
allowAdditions: true,
hideAdditions: false,
onChange: function(value, text, $choice) {
if ($choice.hasClass('addition')) {
console.log(`adding ${value}`);
}
}
})