Javascript 利比里亚、阿拉伯利比亚民众国、列支敦士登、立陶宛、卢森堡、澳门、前南斯拉夫的马其顿共和国、马达加斯加、马拉维、马来西亚、马尔代夫、马里、马耳他、马绍尔群岛、马提尼克、毛里塔尼亚、毛里求斯、马约特、墨西哥、密克罗尼西亚联邦、摩尔多瓦共和国、摩纳哥“,“蒙古”,“蒙特塞拉特”,“摩洛哥”,“莫桑比克”,“缅甸”,“纳米比亚”,“瑙鲁”,“尼泊尔”,“荷兰”,“荷属安的列斯群岛”,“新喀里多尼亚”,“新西兰”,“尼加拉瓜”,“尼日尔”,“尼日利亚”,“纽埃”,“诺福克岛”,“北马里亚纳群岛”,“挪威”,“阿曼”,“巴基斯坦”,“帕劳”,“巴拿马”,“巴布亚新几内亚”,“巴拉圭”,“秘鲁”,“菲律宾”、“皮特凯恩”、“波兰”、“葡萄牙”、“波多黎各”、“卡塔尔”、“留尼汪”、“罗马尼亚”、“俄罗斯联邦”、“卢旺达”、“圣基茨和尼维斯”、“圣卢西亚”、“圣文森特和格林纳丁斯”、“萨摩亚”、“圣马力诺”、“圣多美和普林西比”、“沙特阿拉伯”、“塞内加尔”、“塞舌尔”、“塞拉利昂”、“新加坡”、“斯洛伐克共和国”“,”斯洛文尼亚“,”所罗门群岛“,”索马里“,”南非“,”南乔治亚和南桑威奇群岛“,”西班牙“,”斯里兰卡“,”圣赫勒拿“,”圣皮埃尔和米克隆“,”苏丹“,”苏里南“,”斯瓦尔巴德和扬马延群岛“,”斯威士兰“,”瑞典“,”瑞士“,”阿拉伯叙利亚共和国“,”中国台湾省“,”塔吉克斯坦“,“坦桑尼亚联合共和国”、“泰国”、“多哥”、“托克劳”、“汤加”、“特立尼达和多巴哥”、“突尼斯”、“土耳其”、“土库曼斯坦”、“特克斯和凯科斯群岛”、“图瓦卢”、“乌干达”、“乌克兰”、“阿拉伯联合酋长国”、“联合王国”、“美国”、“美国小离岛”、“乌拉圭”、“乌兹别克斯坦”、“瓦努阿图”、“委内瑞拉”、“越南”“,“维尔京群岛(英国)”,“维尔京群岛(美国)”,“瓦利斯和富图纳群岛”,“西撒哈拉”,“也门”,“南斯拉夫”,“赞比亚”,“津巴布韦”]; $(“#basics.typeahead”).typeahead({ 提示:没错, 推荐理由:没错, 最小长度:1 }, { 名称:“本地数据”, 显示:“数据”, 来源:getLocalSource() }, { 名称:“州”, displayKey:'值', 来源:子字符串匹配器(状态), 模板:{ 标题:“州” } }, { 名称:'国家', displayKey:'值', 来源:子字符串匹配器(国家), 模板:{ 标题:“国家” } }); .tt数据集.head{ 填充:15px; 字体大小:粗体; 背景颜色:浅灰色; }

Javascript 利比里亚、阿拉伯利比亚民众国、列支敦士登、立陶宛、卢森堡、澳门、前南斯拉夫的马其顿共和国、马达加斯加、马拉维、马来西亚、马尔代夫、马里、马耳他、马绍尔群岛、马提尼克、毛里塔尼亚、毛里求斯、马约特、墨西哥、密克罗尼西亚联邦、摩尔多瓦共和国、摩纳哥“,“蒙古”,“蒙特塞拉特”,“摩洛哥”,“莫桑比克”,“缅甸”,“纳米比亚”,“瑙鲁”,“尼泊尔”,“荷兰”,“荷属安的列斯群岛”,“新喀里多尼亚”,“新西兰”,“尼加拉瓜”,“尼日尔”,“尼日利亚”,“纽埃”,“诺福克岛”,“北马里亚纳群岛”,“挪威”,“阿曼”,“巴基斯坦”,“帕劳”,“巴拿马”,“巴布亚新几内亚”,“巴拉圭”,“秘鲁”,“菲律宾”、“皮特凯恩”、“波兰”、“葡萄牙”、“波多黎各”、“卡塔尔”、“留尼汪”、“罗马尼亚”、“俄罗斯联邦”、“卢旺达”、“圣基茨和尼维斯”、“圣卢西亚”、“圣文森特和格林纳丁斯”、“萨摩亚”、“圣马力诺”、“圣多美和普林西比”、“沙特阿拉伯”、“塞内加尔”、“塞舌尔”、“塞拉利昂”、“新加坡”、“斯洛伐克共和国”“,”斯洛文尼亚“,”所罗门群岛“,”索马里“,”南非“,”南乔治亚和南桑威奇群岛“,”西班牙“,”斯里兰卡“,”圣赫勒拿“,”圣皮埃尔和米克隆“,”苏丹“,”苏里南“,”斯瓦尔巴德和扬马延群岛“,”斯威士兰“,”瑞典“,”瑞士“,”阿拉伯叙利亚共和国“,”中国台湾省“,”塔吉克斯坦“,“坦桑尼亚联合共和国”、“泰国”、“多哥”、“托克劳”、“汤加”、“特立尼达和多巴哥”、“突尼斯”、“土耳其”、“土库曼斯坦”、“特克斯和凯科斯群岛”、“图瓦卢”、“乌干达”、“乌克兰”、“阿拉伯联合酋长国”、“联合王国”、“美国”、“美国小离岛”、“乌拉圭”、“乌兹别克斯坦”、“瓦努阿图”、“委内瑞拉”、“越南”“,“维尔京群岛(英国)”,“维尔京群岛(美国)”,“瓦利斯和富图纳群岛”,“西撒哈拉”,“也门”,“南斯拉夫”,“赞比亚”,“津巴布韦”]; $(“#basics.typeahead”).typeahead({ 提示:没错, 推荐理由:没错, 最小长度:1 }, { 名称:“本地数据”, 显示:“数据”, 来源:getLocalSource() }, { 名称:“州”, displayKey:'值', 来源:子字符串匹配器(状态), 模板:{ 标题:“州” } }, { 名称:'国家', displayKey:'值', 来源:子字符串匹配器(国家), 模板:{ 标题:“国家” } }); .tt数据集.head{ 填充:15px; 字体大小:粗体; 背景颜色:浅灰色; },javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,在调用typeahead之前,我们在输入字段上挂起处理程序 要禁用选项卡上的第一项选择,请在“typeahead.jquery.js”文件中 找到函数“\u onTabKeyed”并重写该函数。注释/删除使用$selective自动完成的部分,并将空字符串传递给函数autocomplete(),如下所示: _onTabKeyed: function onTabKeyed(type, $e) { var $selectable; if ($selectable = this.men

在调用typeahead之前,我们在输入字段上挂起处理程序


要禁用选项卡上的第一项选择,请在“typeahead.jquery.js”文件中

找到函数“\u onTabKeyed”并重写该函数。注释/删除使用$selective自动完成的部分,并将空字符串传递给函数autocomplete(),如下所示:

_onTabKeyed: function onTabKeyed(type, $e) {
    var $selectable;
    if ($selectable = this.menu.getActiveSelectable()) {
        this.select($selectable) && $e.preventDefault();
    } else if ($selectable = this.menu.getTopSelectable()) {
        // this.autocomplete($selectable) && $e.preventDefault();
        this.autocomplete('') && $e.preventDefault();
    }
}

你有使用这个库的fiddle/代码吗?@George,我用我用来调用库的代码更新了这篇文章。我之前试过删除这一行——我甚至删除了包含单词标签的所有代码行,仍然没有成功。你试过注释这一行吗<代码>this.inputView.setInputValue(suggestion.value)我设法找到了答案。我取出了所有与tab相关的内容,并删除了自动完成功能。这不是我想要的,但短期内会奏效。非常感谢你的帮助!
        _onTabKeyed: function onTabKeyed(type, $e) {
            var $selectable;
            if ($selectable = this.menu.getActiveSelectable()) {
                this.select($selectable) && $e.preventDefault();
            } else if ($selectable = this.menu.getTopSelectable()) {
//              this.autocomplete($selectable) && $e.preventDefault(); // <-- Comment out
                this.close() && $e.preventDefault();  // <--- Add this
            }
        },
var tt = null; // init variable typeahead
var input_element = $(input);

var p = {
    hint: false,
    highlight: true,
    minLength: 1
};

var ds = {
    name: "namecompleter",
    async: true,
    limit: 10,
    source: function (q, syncProcess, asyncProcess) { ... }
};

// The first element in the drop-down list is not selected if the [Tab] button on the keyboard is pressed
// Hook [onTabKeyed] typeahead
var disableOnTabKeyed = true; // default behavior keyTab
input_element.bind("keydown", function(e) {

    // if select from the drop-down list enable [OnTabKeyed] typeahead
    if( (e.keyCode == 40) || (e.keyCode == 38) ){ // (40 - keyDown) || (38 - keyUp)
        disableOnTabKeyed = false;
    }else if( e.keyCode != 9 ){
        disableOnTabKeyed = true;
    }

    if( disableOnTabKeyed && (e.keyCode == 9) ){ // (9 - keyTab)
        tt.typeahead("close");
        //e.keyCode = 0;
        //e.preventDefault();
        //e.stopPropagation();
    }
});  

tt = input_element.typeahead(p, ds);
_onTabKeyed: function onTabKeyed(type, $e) {
    var $selectable;
    if ($selectable = this.menu.getActiveSelectable()) {
        this.select($selectable) && $e.preventDefault();
    } else if ($selectable = this.menu.getTopSelectable()) {
        // this.autocomplete($selectable) && $e.preventDefault();
        this.autocomplete('') && $e.preventDefault();
    }
}