使用JavaScript来阻止空格键?

时间:2012-10-29 11:29:02

标签: php javascript

我在我正在开发的网站上进行实时搜索。目前,它在输入第一个字符后搜索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”则不会。

有什么我可以尝试实现的吗?

3 个答案:

答案 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..");
    }
});

演示: http://jsfiddle.net/BerkerYuceer/JJG9M/