天天看點

腳本(js)控制頁面輸入

簡單介紹:

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">

繼續閱讀