自动完成停止当用户按下“回车”(AutoComplete Stopping When User Pr

2019-10-17 14:58发布

我使用的一个商业网站的AutoCompleteExtender。 我的问题是用户快速键入一个单词的一部分,并立即按“回车”,它使自动完成控制与建议列表回来。 例如,如果我的数据库中有短语“德克萨斯州,美国”中,但用户只需键入“得克萨斯”紧接着输入,则下拉列表中不会出现。

我想是自动完成控制忽略用户按下Enter键的事实去,反正获取建议的资料。 (最终是如果忽略输入时,有目前没有名单,但是当有一个列表中选择一个项目)。

我可以去一些字符非常快,然后“确认”此Microsoft ASP.NET网站和打字的样品部分模拟这种确切的问题。

请可能有人告诉我,我需要做什么?

谢谢,马丁

Answer 1:

我解决这个问题之前,黑客对是自动完成的目标的文本框额外的keydown的处理程序。 更换this._autoCompleteBehavior的片段与您AutoCompleteBehavior(通过获得的实例的引用低于$find()BehaviorID )。 这里的想法是给力的自动完成行为,认为它需要通过调用执行查找_onTimerTick()它打字延迟结束后执行。 默认情况下,输入延迟被通过敲击回车键取消了,所以这只是迫使查找反正上输入或选项卡。

免责声明:我劈引用AjaxControlToolkit代码的“私有”成员(的东西,用下划线开头是“私人”),所以它可能是不保证是面向未来的。

_searchTextbox_keydown: function(e)
{
    var key = e.keyCode || e.rawEvent.keyCode;

    // If the user hits enter or tab before the auto complete popup appears, force the autocomplete lookup at that moment.        
    if ((key === Sys.UI.Key.enter || key === Sys.UI.Key.tab) && this._autoCompleteBehavior._currentPrefix != this._autoCompleteBehavior._currentCompletionWord())
    {
        this._autoCompleteBehavior._onTimerTick(this._autoCompleteBehavior._timer, Sys.EventArgs.Empty);

        e.preventDefault();
    }
}


Answer 2:

嘿尝试的jQuery或YUI自动完成扩展。 这将是快如闪电。



文章来源: AutoComplete Stopping When User Presses “Enter”