0

Jquery UIオートコンプリートは、ソースオブジェクトの選択リストに一致する文字を入力テキスト領域に入力すると開き、Enterキーを使用して選択リストから選択した後に閉じます。入力したテキストが入力されていない場合は、閉じます。選択のリスト。

選択リストにないテキストを入力した後、オートコンプリートが閉じられたことを確認するにはどうすればよいですか?私がやろうとしているのは、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

大きく分けて、2つのアプローチがあります。1つはメソッドを介して要素にバインドされ、もう1つはオートコンプリートリストのクローズによって発生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 に答える
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 に答える