具有远程选择菜单内容的语义ui下拉菜单:' clear'并且'准​​确地设置'删除占位符

时间:2016-03-17 18:52:08

标签: semantic-ui

我使用静态占位符文本创建带有批处理结果的下拉列表(使用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;在远程内容下拉菜单上,除了在设置所选值之前手动将选择项添加到菜单中?

1 个答案:

答案 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文件。

希望这有帮助。