使用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();
 }
});

这做了要做的事情,但不完全是我想要的。这将防止太空栏完全在文本输入中工作,我需要的是,只有在键入第一个字符时,它才能防止太空栏。例如,键入"苹果"将阻止空间,但是输入"苹果橙色"不会。

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

您可以像以下示例那样轻松地做到这一点:

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
}

最新更新