<form name="reg" action="user_add.jsp" method="post" target="_blank" onSubmit="return check()">

解决方案 »

  1.   

    我的意思是check()这个检测函数没有执行就直接跳转了。。
      

  2.   

    你的正则有问题导致check函数就没有编译通过,而且控件属性大小写也没区分,标准浏览器不能用formname.来取值,要通过document.formname,或者传递表单过去<input type="submit" name="submit" value="注册" onClick="return check(this.form)"/>
        function IsDigit(cCheck) {
            return (('0' <= cCheck) && (cCheck <= '9'));
        }    function IsAlpha(cCheck) {
    //////////////
            return ((('a' <= cCheck) && (cCheck <= 'z')) || (('A' <= cCheck) && (cCheck <= 'Z')));
        }
        function IsValid(reg) {
            var struserName = reg.UserName.value;//大小写没区分
            for (nIndex = 0; nIndex < struserName.length; nIndex++) {
                cCheck = struserName.charAt(nIndex);
                if (!(IsDigit(cCheck) || IsAlpha(cCheck))) {
                    return false;
                }
            }
            return true;
        }    function chkEmail(str) {
            return str.search(/[\w\-]{1,}@[\w\-]{1,}\.([\w\-]{1,})/) == 0 ? true : false
        }    function check(reg) {
            if (reg.UserName.value == "") {
                alert("请填写用户名!");
                return false;
            }
            else if (!IsValid(reg)) {
                alert("用户名只能使用字母和数字!");
                return false;
            }
            else if (reg.UserPassword.value == "") {
                alert("请填写密码!");
                return false;
            }
            else if (reg.UserPassword.value != reg.CUserPassword.value) {//又是大小写不区分
                alert("两次密码不一致!");
                return false;
            }
            else if (reg.NickName.value == "") {
                alert("请填写昵称!");
                return false;
            }
            else if (reg.Email.value == "") {
                alert("请填写邮箱!");
                return false;
            }
            else if (!chkEmail(reg.Email.value)) {
                alert("请填写有效的Email地址!");
                return false;
            }
            else {
                return true;
            }
        }
      

  3.   

    静下心来,慢慢去理解。建议不要用submit按钮和reset按钮,用button就可以。