【问题标题】:Semantic ui dropdown, prevent auto select with input element语义 ui 下拉菜单,防止使用输入元素自动选择
【发布时间】: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,我见过它,但它的工作方式并不能满足我的需求……这同时是一个搜索栏和一种添加项目的方式。那不是我要找的。那时,我只想从输入字段中取消搜索:)

标签: javascript semantic-ui


【解决方案1】:

要允许用户添加新项目,只需将allowAdditions: True 添加到下拉选项中,更多信息请参阅semantic-ui dropdown settings

例子:

$('dropdownSelector').dropdown({ 允许添加:真 }).dropdown();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    相关资源
    最近更新 更多