检测是否键入了字符或数字

时间:2011-05-24 21:09:36

标签: javascript

我想设置一个主页,按下任何字符(小写或大写)或任何数字都会将用户重定向到login page,因为主页本身没有任何操作要求输入

我的第一次尝试是:

document.onkeyup = function() {
  document.location.href = "/login"
}

这适用于每个键,包括游标,制表符,甚至大写锁定。如何限制此功能,使其仅响应字符和数字?

3 个答案:

答案 0 :(得分:5)

当事件发生时,密钥代码将作为事件参数发送。我们可以使用它来确定是否按下了字符或数字键。像这样:

document.onkeyup = function(e) {

  if ((e.keyCode >= 65 && e.keyCode <= 90) ||
      (e.keyCode >= 97 && e.keyCode <= 122) ||
      (e.keyCode >= 48 && e.keyCode <= 57)){
      document.location.href = "/login";
  }
};

作为参考,上面使用的数字是ASCII码,你可以在这里找到完整的列表:http://asciitable.com/。 48-57是数字0-9,65-90是大写字符,97-122是小写字符。

你可以在这里找到一个非常简单的JS Fiddle示例:http://jsfiddle.net/jpYyg/。在按任何按钮之前,请记住在“结果”面板(右下角)中单击,否则它将无效!

HTH

答案 1 :(得分:1)

<script type="text/javascript">
    document.onkeyup = function (e) {
        var patt =/\w/g;
        var key = String.fromCharCode(e.keyCode);
        if (patt.test(key))
            document.location.href = "/login";
    }
</script>

答案 2 :(得分:0)

document.onkeyup = function(event) {
    if (###event.keyCode corresponds to a letter or numeral###)
        document.location.href = "/login";
    else
        event.preventDefault();
}

如果您希望使用jQuery简化生活,还可以查看http://api.jquery.com/keypress/的演示。