Автозаполнение в шаблонах jQuery - PullRequest
0 голосов
/ 16 мая 2018

У меня есть шаблон jQuery с текстовым полем, которое должно поддерживать автозаполнение, как показано ниже.

$('.approvername').each(function (i, el) {
            el = $(el);
            el.autocomplete({
                source: function (request, response) {
                    $.ajax({
                        url: 'https://localhost/<myurl>' + request.term,
                        dataType: "json",
                        type: "GET",
                        contentType: "application/json; charset=utf-8",
                        success: function (data) {
                            response($.map(data, function (value, key) {
                                return {
                                    label: value.full_name,
                                    value: value.user_id
                                };
                            }))
                        },
                        error: function (response) {
                            alert(response.responseText);
                        },
                        failure: function (response) {
                            alert(response.responseText);
                        }
                    });
                },
                focus: function (event, ui) {
                    el.val(ui.item.label);
                    return false;
                },
                select: function (e, ui) {
                    el.val(ui.item.label);
                    return false;
                },
                minLength: 1
            });
        });

Фрагмент кода вызывается после инициализации шаблона.

$("#approverTemplate").tmpl(approvers).appendTo("#approverContainer");

Однако автозаполнение не работает. Какие-либо предложения ? Ошибок нет.

Примечание: автозаполнение отлично работает при подключении к текстовому полю вне шаблонов jQuery.

<script id="approverTemplate" type="text/x-jquery-tmpl">
    <div class="row">
        <div class="col s6">
            <div class="input-field">
                <input id='${name}' class="approvername validate form-control" type="search" required name='${name}'>
                <input id='${name}id' type="text" style="display:none;">
                <label for='${name}' class="active">
                    ${name}
                </label>

            </div>
        </div>
    </div>
</script>

1 Ответ

0 голосов
/ 16 мая 2018

Проблема возникла из-за нескольких версий jQuery, указанных в решении. Как ни странно, автозаполнение работало нормально без шаблонов и никогда не жаловалось на несколько версий. Я удалил старую версию jQuery, и она начала работать.

...