使用javascript进行表单验证的“正确”方法是什么?

时间:2011-07-29 13:40:14

标签: javascript forms validation

我正在使用javascript对项目进行一些表单验证。什么即时工作,但似乎可能有更好的方法来做到这一点。这是我所拥有的一个例子。

onkeypress="return keyNumOnly(event)"
function keyNumOnly(key)
{//this allows numbers and decimals.   
    var keychar;
    var numcheck;
    var keynum;
    if(window.event) // IE
        {
            keynum = key.keyCode;
        }     
    else if(key.which) // Netscape/Firefox/Opera
        {
            keynum = key.which;
        }
    if (keynum==8)
        {
            return true;
        }
    keychar = String.fromCharCode(keynum);
    numcheck = /\d/;
    if (keychar== ".")
        {
            return true;    
        }
    return numcheck.test(keychar);
}

3 个答案:

答案 0 :(得分:1)

我建议使用预先打包的解决方案进行表单验证。例如,如果您可以使用jQuery,jQuery Validation Plugin可以很好地验证表单 - 实时验证(就像您正在做的那样)以及“提交”事件之前的验证。

答案 1 :(得分:1)

一些清理:

someTextbox.onkeypress = function(event) { // you can pass a function directly
    var event    = event || window.event, 
        // this means: event or window.event if event does not exist

        keynum   = event.keyCode || event.which,
        // event.keyCode or event.which otherwise

        keychar  = String.fromCharCode(keynum),

        numcheck = /\d/;


    if(/\t|\./.test(keychar)) {
        // checking for dot or tab using a regexp: \t is tab, | means 'or', \. is dot
        return true;
    }


    return numcheck.test(keychar);
}

答案 2 :(得分:0)

表单验证(例如针对正则表达式)是HTML5的一部分,因此可以很快由浏览器本身完成。

Dive into HTML5 explains how