Я использую плагин автозаполнения пользовательского интерфейса jQuery, и все хорошо, за исключением того факта, что когда пользователь нажимает значение, которое он хочет, функция, которую я назначил методу "select:", запускается дозначение поля изменено.Поэтому, если я введу «Foo» в поле ввода, а затем щелкните совпадение при автозаполнении для «Foo Bar», функция обнаружит, что значение было набрано (в данном случае «Foo»), а не значение, выбранное из автозаполнения.список.Как только функция запускается (в этом случае у меня просто появляется всплывающее окно с предупреждением w / this.value), значение поля ввода устанавливается равным значению, выбранному в списке автозаполнения.Эта проблема не возникает, если пользователь выбирает параметр с клавиатурой (клавиши со стрелками -> вкладка), только когда используется мышь.
$(function()
{
var aEmps =
[
<?php
echo $sEmps;
?>
];
$("#slast").bind( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).data( "autocomplete" ).menu.active )
{ event.preventDefault(); }
})
.autocomplete({
source: aEmps,
select: function(event, ui)
{
var aName = $(this).val();
alert(aName);
}
})
});
Так как большинство пользователей будут взаимодействовать с этим с помощью мыши, я должен найти способ получить значение, прежде чем запускать функцию «select:».Я полагаю, что могу приспособиться к этому, добавив условие в оператор до автоматического завершения, но мне нужна помощь в поиске правильного синтаксиса.