Javascript和密钥代码,防止文本框中的特殊字符

时间:2014-09-17 18:48:11

标签: javascript asp.net

我需要一些关于这个JavaScript函数的帮助。

我尝试阻止文本框中的某些特殊字符。

Aspx.vb代码:

txtDes_OP.Attributes.Add("onKeyPress", "return IsAlphaNumeric(event);")

aspx页面上的代码:

<script type="text/javascript">

        var specialKeys = new Array();
        specialKeys.push(8); //Backspace
        specialKeys.push(9); //Tab
        specialKeys.push(46); //Delete
        specialKeys.push(36); //Home
        specialKeys.push(35); //End
        specialKeys.push(37); //Left
        specialKeys.push(39); //Right
        specialKeys.push(32); //Space

        function IsAlphaNumeric(e) {

            var keyCode = e.keyCode == 0 ? e.charCode : e.keyCode;

            alert(e.charCode);

            var ret = ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122) || (specialKeys.indexOf(e.keyCode) != -1 && e.charCode != e.keyCode));

            return ret;

        }

</script>

此Javascript函数有效,但它无法将代码编号32识别为Space键的KeyCode。所以,现在我不可能在文本框中用空格分隔两个单词。

根据这个网页: http://www.javascriptkeycode.com/ 数字32是空格键的关键代码。

此代码有什么问题?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码javascript

<script language="javascript" type="text/javascript">
    function alphaNumeric(e) {
        tecla = (document.all) ? e.keyCode : e.which;
        if (tecla == 8) return true;
        patron = /[a-zA-Z0-9]/
        te = String.fromCharCode(tecla);
        return patron.test(te);
    }
</script>