当用户点击退格键时,将触发搜索。我怎样才能防止这种情况发生?我尝试了以下代码,但它似乎仅在第二次按下退格键后才起作用。
var $cached_input = $("#myinput");
$cached_input.autocomplete({
autoFocus: true,
delay: 700,
open: function (event, ui) {
$(this).autocomplete("widget")
.find("ui-menu-item-alternate")
.removeClass("ui-menu-item-alternate")
.end()
.find("li.ui-menu-item:odd a")
.addClass("ui-menu-item-alternate");
},
source: function (request, response) {
var params = { searchTerm: request.term }
//ajax call made here to load the data...
},
minLength: minChars
}).keydown(function (event) {
if (event.keyCode == 8) {
$cached_input.autocomplete("disable");
} else {
$cached_input.autocomplete("enable");
}
});
编辑 作为一种解决方法,我已经实施了以下更改(每个更改旁边的注释),它似乎可以完成这项工作。如果存在更好的解决方案,仍然可以接受。
var $cached_input = $("#myinput");
var performSearch = true; //added variable to determine if I should search
$cached_input.autocomplete({
autoFocus: true,
delay: 700,
open: function (event, ui) {
$(this).autocomplete("widget")
.find("ui-menu-item-alternate")
.removeClass("ui-menu-item-alternate")
.end()
.find("li.ui-menu-item:odd a")
.addClass("ui-menu-item-alternate");
},
source: function (request, response) {
if (performSearch) { //check variable before performing search
var params = { searchTerm: request.term }
//ajax call made here to load the data...
}
},
minLength: minChars
}).keydown(function (event) {
if (event.keyCode == 8) {
performSearch = false; //do not perform the search
} else {
performSearch = true; //perform the search
}
});