如何使用jquery ui关闭自动完成时从输入文本区域获取文本?

时间:2013-02-09 16:58:13

标签: jquery jquery-ui

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

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

这样的事情:

           $(".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. 
               }

           });

2 个答案:

答案 0 :(得分: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 Fiddle demo

或者:

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

JS Fiddle demo

参考文献:

答案 1 :(得分:0)

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

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

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