У меня есть требование в моем проекте предоставить функцию автозаполнения для текстового поля, подобного тому, которое недавно применялось в Google. Мне нужно получать данные при каждом нажатии клавиши, поэтому я вызываю функцию jQuery при нажатии клавиши. Проблема в том, что функция автозаполнения запускается по щелчку мыши в текстовом поле, а не по нажатию клавиши. Я приложу фрагмент кода для лучшего понимания проблемы, которая выглядит следующим образом
$(document).keypress(function(){
lastKey = String.fromCharCode(window.event.keyCode);
alert('lastKey :: ' + lastKey);
var txtVal = document.frm.selectedTechParamName.value + lastKey;
alert('txtVal :: ' + txtVal);
$("#suggestTechParamName").autocomplete('/AEA-Authoring/TechnicianParameterAutocomplete?userAction=getTechParamsForSvcLvlDataID&txtVal=' + txtVal, {
matchContains: true,
minChars: 0,
cacheLength:0,
maxItemsToShow:10
});
});
Теперь, что происходит, когда любая клавиша нажата, оповещения работают нормально, но вторая половина функции, т. Е.
$("#suggestTechParamName").autocomplete('/AEA-Authoring/TechnicianParameterAutocomplete?userAction=getTechParamsForSvcLvlDataID&txtVal=' + txtVal, {
matchContains: true,
minChars: 0,
cacheLength:0,
maxItemsToShow:10
});
вызывается при нажатии на текстовое поле. Кроме того, как вы можете видеть, атрибут «cacheLength: 0», который я написал, заключается в том, что я не хочу, чтобы автозаполнение кэшировало какие-либо данные, но это также не работает.