【发布时间】:2017-03-28 17:22:41
【问题描述】:
我在下拉列表中添加了一个选项,允许用户在项目不存在时添加它。
为此,我在下拉列表中添加了一个输入字段,但是当用户输入内容时,下拉列表会尝试将输入的文本与列表中已有的项目进行匹配。
在这种特定情况下,我觉得这很烦人。我在docs 中注意到输入元素绑定到搜索功能。不过,我找不到如何禁用此行为。
这是 HTML:
<div class="ui fluid selection dropdown playlist">
<input name="playlist" type="hidden">
<i class="dropdown icon"></i>
<div class="default text">playlist</div>
<div class="menu">
<div class="item create" data-value="0">
<span class="create-placeholder">+ new playlist</span>
<div class="ui action input add-playlist">
<input placeholder="new playlist">
<button class="ui button">Add</button>
</div>
</div>
<div class="item" data-value="1">foo</div>
<div class="item" data-value="2">bar</div>
<div class="item" data-value="3">baz</div>
</div>
</div>
.add-playlist div 及其内容未显示,但我愿意在这里为您提供 CSS。
还有js:
$dropdown = $('.ui.dropdown');
$dropdown.dropdown({
action: (text, val) => {
if (val == 0) { // eslint-disable-line
$('.create-placeholder').hide(100);
$('.add-playlist').css('display', 'inline-flex');
$('.add-playlist input, .add-playlist button').show(200);
}
else $dropdown.dropdown('set selected', val).dropdown('hide');
},
onHide: () => {
// do that after dropdown has been hidden
setTimeout(() => {
$('.add-playlist, .add-playlist input, .add-playlist button').hide();
$('.create-placeholder').show();
}, 400);
}
});
我已经设置了一个fiddle 有一个明确的例子。只要输入“foo”,你就会明白我的意思,以防它不是很清楚。
【问题讨论】:
-
下拉模块具有一些用于用户添加项目的本机功能。见Tagging and User Additions。
-
Thx @GoranMottram,我见过它,但它的工作方式并不能满足我的需求……这同时是一个搜索栏和一种添加项目的方式。那不是我要找的。那时,我只想从输入字段中取消搜索:)