我在我正在开发的网站上进行实时搜索。目前,它在输入第一个字符后搜索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();
}
});
这就是它的意图,但不完全是我想要的。这将阻止空格键完全在文本输入中工作,我需要的是它只会阻止空格键,如果它是键入的第一个字符。例如,键入“apples”会阻止空格,但输入“apples oranges”则不会。
有什么我可以尝试实现的吗?
答案 0 :(得分:2)
你可以像这个例子一样轻松地做到这一点:
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
键,则返回并且不执行任何操作,否则您将继续搜索...
答案 1 :(得分:1)
继来自@Florent的评论后,当用户在您的文本框中键入一个值时,检查修剪后的值是否为!=''如果是这样,则应该可以安全地继续
e.g
if($.trim($txtbox.val()) != ''){ // proceed to do search
}
答案 2 :(得分:1)
$('input[type="text"]').keydown(function(e){
if (e.keyCode == 32 && $.trim($(this).val()) == ''){
e.preventDefault();
} else {
alert("searching..");
}
});