我使用静态占位符文本创建带有批处理结果的下拉列表(使用apiSettings.url成员从远程源获取)。 一切都有效(或多或少),直到我打电话给下拉('清除')或下拉('准确设置'),这两者都做他们应该做的事情 - 但另外删除我的占位符文本。这可能是理想的行为吗?我错过了什么吗?
这是一个示例下拉HTML:
<div name="dropdown" class="ui fluid multiple search selection dropdown">
<input class="search" tabindex="0">
<div class="default text">my disappearing placeholder</div><i class="dropdown icon"></i>
<input type="hidden" name="temporary">
<div class="menu"></div>
</div>
一个简化的下拉初始化代码:
$('.ui.dropdown').dropdown({
fullTextSearch: true,
allowAdditions: false,
apiSettings: {
url: "<some URL returning search results for list>"
}
});
罪魁祸首(?):
$('.ui.dropdown').dropdown('clear');
或
$('.ui.dropdown').dropdown('set exactly', ['value1', 'value2']);
此问题在此处展示:http://jsfiddle.net/11coy51r/3/
点击&#39;准确设置&#39;按钮然后删除添加的值,或键入任何艺术家名称(来自Spotify的目录),选择它,然后单击清除。两者都会产生一个空的下拉输入框,没有先前可见的占位符。
加分问题:
我真的很难(并且可能失败了)可以为这个问题制作一个简单的演示,主要是因为&#39;设置正确&#39;部分。所以我想知道,我在那里错过了一些东西吗?有没有更好的方法来使用&#39;准确设置&#39;在远程内容下拉菜单上,除了在设置所选值之前手动将选择项添加到菜单中?
答案 0 :(得分:3)
目前,语义UI源存在一些问题,刷新功能会删除占位符/默认文本数据,至少在使用allowAdditions或远程数据/ API时是这样。
我找到了一个修复程序,直到Semantic UI devs修复它。 https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.1.8/components/dropdown.js 在第390-392行 - 函数refreshData中,取消以下内容:
//.removeData(metadata.defaultText)
//.removeData(metadata.defaultValue)
//.removeData(metadata.placeholderText)
这当然要求您暂时在本地存储修改后的js文件。
希望这有帮助。