1

次のコードがあり、入力を強制的にオートコンプリートの内容と一致させる方法に興味があります。

$("#foo").autocomplete({
    source: function( request, response ) {
        $.ajax({
            url: "index.pl",
            dataType: "json",
            data: {
                type: 'foo',
                term: request.term
            },
            success: function( data ) {
                response( $.map( data.items, function( item ) {
                    return {
                        value: item.id
                    }
                }));
            }
        });
    },
    minLength: 1
});
4

1 に答える 1

0

2013年にこの問題に出くわした人の利益のためにこの質問に答えます(そうです!)

$("#my_input").autocomplete({
    source: '/get_data/',
    change: function(event, ui) {
        var source = $(this).val();
            var temp = $(".ui-autocomplete li").map(function () { return $(this).text()}).get();
        var found = $.inArray(source, temp);

        if(found < 0) {
            $(this).val(''); //this clears out the field if non-existing value in <select><options> is typed.
        }
    }
});

説明: map() メソッドは、関数から返されたもの (この場合は、各<li>要素のテキスト コンテンツ) が入力された jQuery オブジェクトを作成します。

get() メソッド (引数が渡されない場合) は、その jQuery オブジェクトを実際の配列に変換します。

これは、私が解決策を見た元のリンクです。

これが役立つことを願っています。ありがとう!

于 2013-06-20T13:19:42.963 に答える