我在正在开发的网站上进行了实时搜索。目前,它在键入第一个字符后搜索MySQL数据库,并更新每个新字符的搜索。当将 space 按作为第一个字符时,它显示数据库中的所有条目。我不想这样做。我有以下我在某个地方发现的代码,可以防止SPACE
字符键入:
$('input[type="text"]').keydown(function(e){
var ignore_key_codes = [8,32];
if ($.inArray(e.keyCode, ignore_key_codes) >= 0){
e.preventDefault();
}
});
这做了要做的事情,但不完全是我想要的。这将防止太空栏完全在文本输入中工作,我需要的是,只有在键入第一个字符时,它才能防止太空栏。例如,键入"苹果"将阻止空间,但是输入"苹果橙色"不会。
有什么我可以尝试实现的?
您可以像以下示例那样轻松地做到这一点:
function keyPress(e) {
var e = window.event || e;
var key = e.keyCode;
//space pressed
if (key == 32) { //space
return;
}
searchInDataBase(); //make your ajax call to search in data base etc.
}
如果按下space
键,您返回而不做任何事情,否则您将继续进行搜索...
$('input[type="text"]').keydown(function(e){
if (e.keyCode == 32 && $.trim($(this).val()) == ''){
e.preventDefault();
} else {
alert("searching..");
}
});
演示: http://jsfiddle.net/berkeryuceer/jjg9m/
从 @florent的评论中遵循,当用户在文本框中键入一个值时,检查修剪值是否为!='
例如
if($.trim($txtbox.val()) != ''){ // proceed to do search
}