簡單介紹:
IE中的event有很多keyCode,并且在不同的事件(onkeydown,onkeypress,onkeyup)中同一個鍵的keyCode也有可能不同。
onkeydown Event Fires when the user presses a key.
對于字母大小寫不區分keyCode,a-z/A-Z的keyCode都是65-90
對于數字和小鍵盤的數字區分keyCode,0-9的keyCode是48-57,小鍵盤的數字0-9為96-105
onkeypress Event Fires when the user presses an alphanumeric key.
與onkeydown剛好相反
對于字母大小寫區分keyCode,a-z/A-Z的keyCode都是65-90
onkeyup Event Fires when the user releases a key.
1、隻能輸入字母、數字,且把小寫字母轉換成大寫字母
<script language="javascript">
function checkChar() {
if ((event.keyCode < 48 && event.keyCode != 45)
|| (event.keyCode > 57 && event.keyCode < 65)
|| (event.keyCode > 90 && event.keyCode < 97)
|| event.keyCode > 122) {
event.returnValue = false;
}
if (event.keyCode >= 97 && event.keyCode <= 122) {
event.keyCode -= 32;
}
}
//因為這種做法不能防止使用者拷貝中文,或者采用中文輸入法輸入中文
//是以隻能在送出時,再次檢查一下文本的值,并進行大小寫轉換
function check() {
var objVal = document.all("name").value;
var charCode = "";
var returnObj = "";
for (var i = 0; i < objVal.length; i++) {
charCode = objVal.charCodeAt(i);
if ((charCode < 48 && charCode != 45)
|| (charCode > 57 && charCode < 65)
|| (charCode > 90 && charCode < 97)
|| charCode > 122) {
alert("'" + objVal.charAt(i) + "' 該字元不合法,請輸入字母、數字或中劃線-!");
return false;
}
if (charCode >= 97 && charCode <= 122) {
charCode -= 32;
returnObj += String.fromCharCode(charCode);
document.all("name").value = returnObj;
return true;
</script>
<input type="text" name="name" onkeypress="checkChar()" onpaste="return false;">
<input type="button" name="btn" onclick="check()">
2、以下是在網上轉載的别人的代碼,覺得比較好,就摘抄下來
<script language=jscript>
function number() {
var char = String.fromCharCode(event.keyCode);
alert("number:"+char);
var re = /[0-9]/g;
event.returnValue = char.match(re) != null ? true : false
function filterInput() {
alert("filterInput:"+event.type);
if (event.type.indexOf("key") != -1) {
var re = /37|38|39|40/g
if (event.keyCode.toString().match(re)) return false
event.srcElement.value = event.srcElement.value.replace(/[^0-9]/g, "")
function filterPaste() {
var oTR = this.document.selection.createRange();
var text = window.clipboardData.getData("text");
oTR.text = text.replace(/[^0-9]/g, "");
<input onkeypress="number()" onkeyup="filterInput()" onchange="filterInput()" onbeforepaste="filterPaste()" onpaste="return false" style="ime-mode: disabled">