У меня есть два поля ввода, такие как это:
<input name="accountCode" class="accountCode grid_2"/>
<input name="accountCode" class="accountCode grid_2"/>
Я хочу иметь автозаполнитель на обоих этих поля. Я написал следующий JavaScript:
$(".accountCode").autocomplete(
{
minLength : 1,
source : function(request, response) {
$.ajax({
url : baseUrl + "Autocomplete/Account?accountCode=" + $(this).val(),
dataType : "json",
success : function(data) {
response($.map(data, function(item) {
return {
value : item.accountCode,
desc : item.accountName
}
}));
}
});
},
focus : function(event, ui) {
$(this).val(ui.item.accountCode);
return false;
},
select : function(event, ui) {
// $("#category").val( ui.item.name );
$(this).val(ui.item.value);
// $( "#project-description" ).html( ui.item.desc );
return false;
}
}).data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("item.autocomplete", item).append(
"<a><strong>" + item.value + " </strong>" + item.desc + "</a>")
.appendTo(ul);
};
, конечно, мой сервер возвращает данные JSON с 2 полевыми: AccountCode
и Accountname
.
Я хочу, чтобы оба входа использовать пользовательский рендер в _RENDERITEM
, чтобы это будет отображаться в списке:
"<a><strong>" + item.value + " </strong>" + item.desc + "</a>"
для первого поля, он отлично работает, но для второго поля только это отображает только AccountCode
из item.Value
.
Я проверил, что JSON, полученные с сервера, одинаковы в обоих случаях, поэтому проблема в JavaScript.
Вы знаете, почему эта проблема существует?