0

当您在输入文本区域中键入与源对象的选择列表匹配的字母时,Jquery UI 自动完成打开,并在使用 Enter 键从选择列表中进行选择后关闭,如果您输入的文本不在,则关闭选择列表。

键入不在选择列表中的文本后,如何检查自动完成功能何时关闭?我想要做的是当输入回车键时,检查自动完成是否关闭,如果是,则获取文本区域中的文本(如果它不为空)。

像这样的东西:

           $(".inputText").keydown(function()
           {
               if(keyChar == enterKey)
               {
                 // Somehow check is autocomplete is closed and if inputText is not empty, get the text without it interfering with the autocomplete select event. 
               }

           });
4

2 回答 2

0

如果我理解正确,您正在寻找的是自动完成的“选择”属性。

$( "#tags" ).autocomplete({
    source: aTags,
    select: function( event, ui ) {
        alert(ui.item.value);
    }
});

这里是 JSFIddle:http: //jsfiddle.net/CezarisLT/KHqQm/

于 2013-02-09T19:31:42.783 回答
0

概括地说,有两种方法,一种通过autocomplete()方法绑定到元素,第二种侦听自定义事件,autocompleteclose由自动完成列表的关闭触发:

var list = [
    'apple',
    'Azerbaijan',
    'aggregate',
    'Albert',
    'Aunty',
    'admissible',
    'and so forth...'
];

$('#textInput').autocomplete({
    source: list,
    close: function ( event, ui ) {
        var v = this.value;
        if (list.indexOf(v) === -1) {
            list.push(v);
        }
    }
});

JS 小提琴演示

或者:

$('#textInput').on('autocompleteclose', function (event, ui) {
    var v = this.value;
    if (list.indexOf(v) === -1) {
        list.push(v);
    }
});

JS 小提琴演示

参考:

于 2013-02-09T19:31:12.440 回答