2011-05-24 67 views
4

我想設置一個主頁,其中按任何字符(小寫或大寫)或任何數字將用戶重定向到login page,因爲主頁本身沒有任何東西要做到這一點就需要打字。檢測是否輸入了字符或數字

我第一次嘗試是這樣的:

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

這工作,但它的工作原理爲鍵,包括光標,標籤,甚至大寫鎖定。我如何限制這個功能,以便它只響應字符和數字?

回答

4

當事件發生時,鍵碼作爲事件參數發送。我們可以使用它來確定是否按下了字符或數字鍵。就像這樣:

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

+0

優秀的答案,謝謝卡爾。 – sscirrus 2011-05-24 21:26:16

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

您還可以看到演示爲http://api.jquery.com/keypress/,如果你想簡化使用jQuery你的生活。

+0

'event.keyCode'將始終是一個數字。 – Shaz 2011-05-24 21:21:10

+1

### event.keyCode是一個字符或數字###'是我問題的主要部分。 – sscirrus 2011-05-24 21:21:36

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> 
相關問題