语义ui下拉列表,阻止使用input元素自动选择

时间:2017-03-28 17:22:42

标签: javascript semantic-ui

我在下拉列表中添加了一个选项,允许用户添加项目(如果项目不存在)。

就此而言,我在下拉列表中添加了一个输入字段,但是当用户输入内容时,下拉列表会尝试将输入的文本与列表中已有的项目进行匹配。

在特定情况下,我觉得很烦人。我在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以获得明确的例子。只需键入&#34; foo&#34;如果它不清楚,你会明白我的意思。

1 个答案:

答案 0 :(得分:0)

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

示例:

$( 'dropdownSelector')。下拉({         allowAdditions:True     })下拉();