jquery-ui - jquery ui 自动完成 : trigger only when item is not selected

标签 jquery-ui jquery-ui-autocomplete

我想弄清楚如何使 jquery ui 选择“相反”。当有人没有选择一个选项而只是输入“jquery something”时,输出将是:
“新输入:jquery 东西”。 However when the "jquery"is selected it would be nice to somehow only have "selected from list: jquery", and prevent the keypress propogation.但是,这两个事件都会触发。我正在努力做到这一点。

<input class="test" type="text" />

<script>
$('.test').autocomplete({
    select: function (event, ui) {
        alert('selected from list: ' + ui.item.label);
        event.preventDefault();
        return false;
    },
    source: ["jquery", "jquery ui", "sizzle"]
});
$('.test').live('keypress', function (e) {
    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
        alert('new input: ' + $(this).val());
    }
});
</script>

这是假设“输入”键用于从 ui 的菜单中选择一个选项。

最佳答案

您可以使用 autocompletechange 完成此操作。事件。使用此事件,您可以确定用户是否选择了选项或键入了不在列表中的内容:

$("#auto").autocomplete({
    source: ['hi', 'bye', 'foo', 'bar'],
    change: function(event, ui) {
        console.log(this.value);
        if (ui.item == null) {
            $("span").text("new item: " + this.value);
        } else {
            $("span").text("selected item: " + ui.item.value);
        }
    }
});

示例: http://jsfiddle.net/Ne9FH/

关于jquery-ui - jquery ui 自动完成 : trigger only when item is not selected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447859/

相关文章:

php - 来自 php vars 的 jquery 自动完成

jquery-ui-autocomplete - Behat + mink 如何测试 jquery-ui 自动完成字段?

jquery - 禁用 jQuery 自动完成下拉列表

javascript - JQuery UI 对话框可以记住它在打开和关闭之间的位置吗

javascript - 将附加元素附加并保留到 jQuery ui-autocomplete

jquery - 将 <div> 附加到 jQuery slider 句柄

javascript - 选项列表中是否可以有 JQuery 自动完成子文本?

Drupal 中的 Jquery 持久可排序对象?

javascript - 我什么时候可以在 AngularJS 应用程序中启用 JQueryUI 拖放功能?

javascript - 仅当用户在 jquery UI 自动完成中暂停时才触发 ajax 请求