首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保持在自动完成中键入的内容

问如何保持在自动完成中键入的内容
EN

Stack Overflow用户
提问于 2015-09-24 11:52:18
回答 1查看 195关注 0票数 0

我正在使用Javascript自动完成小部件,它在我键入时正确地显示建议列表,但是当我按下键浏览列表时,我的当前输入将被删除。

​

SERVIÇO OU PRODUTO是一个占位符。

虽然这不是我的问题,但是这个小提琴应该演示这个问题。在键入一个字母并按下键后,它将我的输入替换为所选内容。

这是我的密码:

代码语言:javascript
复制
$.widget('custom.mcautocomplete', $.ui.autocomplete, {
    _create: function() {
        this._super();
    },
    _renderItem: function(ul, item) {
        var t = '',
            result = '';

        $.each(this.options.columns, function() {
            t = '<span>' + item[0] + ' - R$ ' + item[1] + '</span>';
        });

        result = $('<li></li>')
            .data(item)
            .append(t)
            .appendTo(ul);
        return result;
    }
});

$("#my-input").mcautocomplete({
    columns: my-columns,
    source: my-info,
    select: function(event, ui) {
        this.value = (ui.item[0]);
        return false;
    }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-28 15:08:02

必须取消焦点事件:

代码语言:javascript
复制
focus: function(event, ui) {
    event.preventDefault();
}

手摇琴工作演示

您提供的小提琴确实取消了事件,但通过以下操作立即取消了自己的操作:

代码语言:javascript
复制
$("#customer-search").val(ui.item.label);

请参阅自动完成Widget事件焦点

焦点(事件,ui ) 类型:自动完成焦点 当焦点移到项上时触发(不选择)。默认操作是将文本字段的值替换为焦点项的值,尽管只有当事件是由键盘交互触发的情况下。 取消此事件会阻止更新该值,但不会阻止重点关注菜单项。 代码示例 使用指定的焦点回调初始化自动完成: $( ".selector“).autocomplete({ focus: function( event ) {} }); 将事件侦听器绑定到自动完成焦点事件: $( ".selector“).on(”自动完成焦点“,函数(事件,ui ) {} );

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32760616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档