Рассмотрим следующий код. Из-за характера AJAX я не могу проверить.
$(function() {
$("#RTOCode").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
data: JSON.stringify(request),
contentType: "application/json; charset=utf-8",
url: "/Localhost/BindRTOCity",
dataType: "json",
async: false,
success: function(data) {
response($.map(data.jsBindDataList, function(item) {
return {
label: item.RTOCityCode,
value: item.RTOCityCode,
RTOCityName: item.RTOCityName,
RTOCityCode: item.RTOCityCode
};
}))
}
});
},
select: function(e, i) {
$("#RTOCity").val(i.item.RTOCityName);
$("#hdn_RTOName").val(i.item.RTOCityName);
$("#hdn_RTOCode").val(i.item.RTOCityCode);
return false;
},
minLength: 2,
autoFocus: true
});
});
.ui-autocomplete {
z-index: 1050;
height: 200px;
}
<div class="col-sm-6">
<label for="RTOCode" class="required">RTO Code</label>
<input type="text" name="RTOCode" id="RTOCode" />
</div>
Для автозаполнения при использовании функции для источника request
объект, содержащий элемент term
. Следовательно, request.term
будет значением текстового поля. Так как для него установлено значение minLength
из 2, никогда не будет шанса для пустого значения ("").
Вам потребуется использовать веб-консоль и исследовать вкладку Сеть, чтобы просмотреть полезные данные и убедитесь, что вы отправляете правильные данные и получаете правильный ответ.