Виджет автозаполнения jQuery UI может содержать как метку, так и значение для каждого элемента.
Я с удивлением обнаружил, что в моем текстовом поле установлено значение, а не метка, поскольку элемент выбран. Я мог бы переопределить это следующим кодом:
// ...
select: function (event, ui) {
$('#myEditBox').val(ui.item.label);
$("#myHiddenField").val(ui.item.value);
return false;
},
// ...
Это отлично работает при выборе элемента. Но та же проблема возникает, когда элемент просто подсвечивается. После некоторого поиска я не смог понять, как переопределить это поведение.
Кто-нибудь знает, как установить текстовое поле на метку элемента, когда этот элемент просто подсвечен?
Похоже, что ответ должен состоять в том, чтобы переопределить неинтуитивно называемый обработчик focus
:
// ...
focus: function (event, ui) {
$('#myEditBox').val(ui.item.label);
$("#myHiddenField").val(ui.item.value);
return false;
},
// ...