1

テキストボックスが異なるフォームにいくつかのオートコンプリートがあるため、オートコンプリートをリファクタリングしようとしました。それはうまくいきました... 1つの非常に厄介な詳細を除いて.

私のテキストボックスは、パーセンテージベースの幅で、サイズが異なり、class = "row" と "col-md-9" を使用してページをレイアウトするブートストラップ構造になっています。簡単に言うと、サイズが異なり、幅が事前設定されていません。

なぜこれが問題なのですか?幅を ul-autocomplete に設定しないということは、最初に要素を一致させようとすることを意味しますが、結果が展開するボックスよりも「幅が広く​​」なります。ほとんどの調査によると、CSS で weight: ?px を指定するだけで、重みの設定は簡単です。明らかに、私はそれを行うことはできません。それで、私のオプションは何ですか?

必要に応じて私のjquery:

$('*[data-autocomplete-url]')
        .each(function () {
            var ddl = $(this);
            $(this).autocomplete({
                dataType: 'json',
                source: function (request, response) {
                    $.get((ddl.data("autocomplete-url")), { phrase: request.term }, function (data) {
                        response($.map(data, function (item) {
                            return {
                                label: item.Text,
                                value: item.Value,
                                id: item.Value
                            };
                        }));
                    });
                },
                focus: function (event, ui) {
                    event.preventDefault();
                    ddl.val(ui.item.label);
                },
                change: function (event, ui) {
                    if (!ui.item) {
                        ddl.val("");
                    }
                },
                autoFill: true,
                mustMatch: true,
                minLength: 4,
            });
        });
4

0 に答える 0