Право ...
Я не заинтересован в ответе на свой вопрос, но ребята, которые помогли с этим, большое спасибо. Я не совсем понял, что мне нужно, но, как всегда, вы указали мне правильное направление.
В итоге получилось очень просто ... после нескольких часов возни с focus () blur () change () и всеми видами идентификаторов!
@ Тедди, твои советы и ответ в значительной степени сделали это.
Считыватели штрих-кодов по умолчанию имеют возврат каретки в качестве терминатора, который производится сразу после сканирования. Я не был уверен, сработает ли это, но браузер воспринимает это как нажатие клавиши Enter, поэтому я могу сделать следующее:
$('.findProduct').live('keypress', function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
// call a load function to get details from bar code
};
});
$('.findProduct').live('focus', function () { findProduct() }); // findProduct is the AutoComplete function
Как вы сказали, @Teddy, функция задержки в AutoComplete гарантирует, что это не повлияет на AutoComplete, как только сканер отправит терминатор Enter, я смогу jQuery вызвать нужные мне данные.
При вводе вручную в поле AutoComplete делает все как обычно.
Итак, следующий совет, как вы думаете, мне следует отключить клавишу Enter после того, как автозаполнение сделало это, чтобы избежать путаницы, и аналогичным образом отключить функцию автозаполнения некоторыми способами (еще не решенными)?
РЕДАКТИРОВАТЬ: я должен сказать, что форма больше не имеет кнопки отправки, отправка будет осуществляться с помощью интерактивного div или изображение или что-то.