我希望自动完成功能像这样。
当用户在文本框中输入内容时,什么都不会发生。只有当用户在文本框中完成写入并按下回车键时,才会出现自动完成建议列表。
任何想法如何做到这一点..或者在哪里更改代码..
我希望自动完成功能像这样。
当用户在文本框中输入内容时,什么都不会发生。只有当用户在文本框中完成写入并按下回车键时,才会出现自动完成建议列表。
任何想法如何做到这一点..或者在哪里更改代码..
第1步
通过更改具有以下签名的方法来更改jquery.ui.autocomplete.js文件以接受回车键
.bind("keydown.autocomplete", 函数(事件)
并将其更改为以下代码
case keyCode.ENTER:
case keyCode.NUMPAD_ENTER:
// when menu is open and has focus
if (self.menu.active) {
// #6055 - Opera still allows the keypress to occur
// which causes forms to submit
suppressKeyPress = true;
event.preventDefault();
}
//passthrough - ENTER and TAB both select the current element
到
case keyCode.ENTER:
case keyCode.NUMPAD_ENTER:
// when menu is open and has focus
if (self.menu.active) {
// #6055 - Opera still allows the keypress to occur
// which causes forms to submit
suppressKeyPress = true;
event.preventDefault();
}
else {
clearTimeout(self.searching);
self.searching = setTimeout(function () {
// only search if the value has changed
self.selectedItem = null;
self.search(null, event);
}, self.options.delay);
}
//passthrough - ENTER and TAB both select the current element
STEP : 2 将自动完成绑定更改为
$('.SearchAddresses').autocomplete({
// Your bind code by setting required parameters
search: function (event, ui) {
var key = CheckBrowser(event);
if (key == 13)
return true;
else
return false;
}
});
function CheckBrowser(e) {
if (window.event)
key = window.event.keyCode; //IE
else
key = e.which; //firefox
return key;
}
SETP : 3 如果您在 asp.net 表单控件中使用它
然后也包括它。
$(document).ready(function () {
$("form").keypress(function (e) {
var key = CheckBrowser(e);
if (key == 13) {
e.preventDefault();
return false;
}
else {
return true;
}
});
});
我建议检查“输入键”的按键事件。当按下的键是“Enter”时,触发自动完成功能,如下所示。
$(#inputBoxId).keypress(function(e) {
if(e.which == 13) {
$( "#elementId" ).autocomplete({
//............... bind autocomplete and write your code
});
}
});
试试这个。可能对你有帮助。
也许动态绑定/取消绑定控件。例如,在按下回车键之前不要让它自动完成?要么只读源框,要么在文本更改之前删除,直到他们再次按下回车键?我很确定您可以手动触发自动完成事件,该事件将显示下拉菜单。