У меня есть шаблон 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>