Controlbox的Javascript验证文本框

时间:2014-05-22 05:17:44

标签: javascript validation input

我必须验证文本框以仅输入字母数字字符。 函数validateAlphaNumeric(evt, txtbox)onkeypress上触发textbox事件。 下面是用Javascript编写的函数。

但如果我按Ctrl + V,我无法获得textbox的值。我需要验证用户是否粘贴。 任何人都可以建议我吗?

function validateAlphaNumeric(evt, textBox) {
    /*  File Description    :   Numbers,Characters,Hyphen(-),Slash(/)and Space */
    var charCode;   

    charCode = (evt.which) ? evt.which : window.event.keyCode;

    if (charCode >= 97 && charCode <= 122 || charCode >= 65 && charCode <= 90 || charCode == 8 || charCode >= 48 && charCode <= 57 || charCode == 45) {
        return true;
    }
    else {
        var errorMsg = document.getElementById(textBox.id + 'Error');
        if (errorMsg != null) {
            errorMsg.innerText = "Please Enter Alpha – Numeric Characters only";
        }
        return false;
    }        
}

3 个答案:

答案 0 :(得分:0)

验证该TextBox的 onblur()事件的文本框。你的问题肯定会得到解决。

答案 1 :(得分:0)

来自html5的

oninput事件,它完全符合您的要求。

https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oninput

在处理程序中,检查文本框的value属性是否仅包含允许的字符。

请注意,IE9对此事件有错误支持 - 基本上它不会识别字符删除,但它不会影响您,因为您只能通过删除内容使文本无效。有关更多详细信息,请参见此处:

http://help.dottoro.com/ljhxklln.php

如果你不能使用oninput因为真的需要支持IE8-IE7(暗示:你真的不想),你可以修改你的通过收听onpaste事件来获取文本粘贴事件的代码。

答案 2 :(得分:0)

我找到了答案: 在onpaste活动上尝试这个。 肯定会解决。

我试过了:

function onPaste(evt, textBox) {
    pastedText = window.clipboardData.getData('Text');

    if (pastedText matches regExp) {
        return true;
    } else {
        //display error msg
        return false;
    }
}

此致..