Php JS表单验证失败,表单仍然提交?

Php JS表单验证失败,表单仍然提交?,php,javascript,html,forms,validation,Php,Javascript,Html,Forms,Validation,正如问题所暗示的,我有一个带有JS验证的HTML表单。现在,我仍然在调试验证的详细信息,但问题是onSubmit函数在应该的时候触发错误,但是表单继续提交-我不知道为什么。我已经检查了StackOverflow上的百万和一个类似的问题,但似乎没有一个问题与我的问题有相同的原因-我检查了又检查又检查。如果有人能帮忙,我将不胜感激 此外,我知道我的代码可以缩短,但我会在解决这个问题时这样做 表格: *表示必填字段。 用户名*介于6到32个字符之间(仅限字母、数字和下划线) 错误:请使用字母、数字和

正如问题所暗示的,我有一个带有JS验证的HTML表单。现在,我仍然在调试验证的详细信息,但问题是onSubmit函数在应该的时候触发错误,但是表单继续提交-我不知道为什么。我已经检查了StackOverflow上的百万和一个类似的问题,但似乎没有一个问题与我的问题有相同的原因-我检查了又检查又检查。如果有人能帮忙,我将不胜感激

此外,我知道我的代码可以缩短,但我会在解决这个问题时这样做

表格:


*表示必填字段。
用户名*介于6到32个字符之间(仅限字母、数字和下划线)
错误:请使用字母、数字和下划线输入6到32个字符之间的用户名 名字*
错误:请输入您的名字 姓氏*
错误:请输入您的姓氏 电子邮件*请使用有效的电子邮件地址,它将用于验证您的帐户
错误:请输入电子邮件地址
错误:这不是有效的电子邮件地址 确认电子邮件*
错误:两个电子邮件地址必须匹配 密码*介于6到32个字符之间,至少使用一个字母和一个数字
错误:请输入有效密码 确认密码*
错误:两个电子邮件密码必须匹配
-如果您同意服务条款,请勾选此框。你必须同意才能注册。

JS:


函数validateForm()
{   
var noError=true;
如果(!validateUserName())
{
无错误=错误;
}
如果(!validateFName())
{
无错误=错误;
}
如果(!validateName())
{
无错误=错误;
}
如果(!validateEmail())
{
无错误=错误;
}
如果(!validateConfirmEmail())
{
无错误=错误;
}
如果(!validatePassword())
{
无错误=错误;
}
如果(!validateConfirmPassword())
{
无错误=错误;
}
返回无错误;
}
函数validateUserName()
{
var userName=document.forms[“registerForm”][“regTxtUsrName”];
var regex=/^\w+$/;
如果(userName.value==null | | userName.value==“”| | userName.value.length<6 | | |!regex.test(userName.value))
{
userName.style.border=“2px实心红色”;
document.getElementById('userNameError').style.display=“inline”;
返回false;
}
其他的
{
userName.style.border=“2px solid#0f0”;
document.getElementById('userNameError').style.display=“无”;
返回true;
}
}
函数validateFName()
{
var name=document.forms['registerForm']['regTxtFName'];
if(name.value==null | | name.value==“”)
{
name.style.border=“2px纯红”;
document.getElementById('fNameError').style.display=“inline”;
返回false;
}
其他的
{
name.style.border=“2px solid#0f0”;
document.getElementById('fNameError').style.display=“无”;
返回true;
}
}
函数validateName()
{
var name=document.forms['registerForm']['regTxtSName'];
if(name.value==null | | name.value==“”)
{
name.style.border=“2px纯红”;
document.getElementById('sNameError').style.display=“inline”;
返回false;
}
其他的
{
name.style.border=“2px solid#0f0”;
document.getElementById('sNameError').style.display=“无”;
返回true;
}
}
函数validateEmail()
{
无错误=正确;
var email=document.forms['registerForm']['regTxtEmail'];
var atpos=email.value.indexOf(“@”);
var dotpos=email.value.lastIndexOf(“.”);
如果(email.value==null | | email.value=='')
{
email.style.border='2px纯红';
document.getElementById('emailError1').style.display='inline';
无错误=错误;
}
其他的
{
document.getElementById('emailError1').style.display='none';

如果(atpos首先,您需要知道错误在哪里。 为此,请在每个函数上使用console.log。 之后,可以使用更好的算法和正则表达式对代码进行优化。 要知道问题出在哪里,请检查每个函数的每次返回。 对于主要功能,我将这样做:

function validateForm(){   
    if (validateUserName() && validateFName() && validateSName() && validateEmail() && validateConfirmEmail() && validatePassword() && validateConfirmPassword()){
        return true;
    }
    return false;
}
编辑:检查yo的值
<script type="text/javascript">
    function validateForm()
    {   
        var noError = true;
        if (!validateUserName())
        {
            noError = false;
        }
        if (!validateFName())
        {
            noError = false;
        }
        if (!validateSName())
        {
            noError = false;
        }
        if (!validateEmail())
        {
            noError = false;
        }
        if (!validateConfirmEmail())
        {
            noError = false;
        }
        if (!validatePassword())
        {
            noError = false;
        }
        if (!validateConfirmPassword())
        {
            noError = false;
        }
        return noError;
    }

    function validateUserName()
    {
        var userName = document.forms["registerForm"]["regTxtUsrName"];
        var regex = /^\w+$/;
        if (userName.value==null || userName.value=="" || userName.value.length < 6 || !regex.test(userName.value))
        {
            userName.style.border = "2px solid red";
            document.getElementById('userNameError').style.display="inline";
            return false;
        }
        else
        {
            userName.style.border = "2px solid #0f0";
            document.getElementById('userNameError').style.display="none";
            return true;
        }
    }

    function validateFName()
    {
        var name = document.forms['registerForm']['regTxtFName'];
        if (name.value == null || name.value == '')
        {
            name.style.border = "2px solid red";
            document.getElementById('fNameError').style.display="inline";
            return false;
        }
        else
        {
            name.style.border = "2px solid #0f0";
            document.getElementById('fNameError').style.display="none";
            return true;
        }
    }

    function validateSName()
    {
        var name = document.forms['registerForm']['regTxtSName'];
        if (name.value == null || name.value == '')
        {
            name.style.border = "2px solid red";
            document.getElementById('sNameError').style.display="inline";
            return false;
        }
        else
        {
            name.style.border = "2px solid #0f0";
            document.getElementById('sNameError').style.display="none";
            return true;
        }
    }

    function validateEmail()
    {
        noError = true;
        var email = document.forms['registerForm']['regTxtEmail'];
        var atpos=email.value.indexOf("@");
        var dotpos=email.value.lastIndexOf(".");
        if (email.value == null || email.value == '')
        {
            email.style.border = '2px solid red';
            document.getElementById('emailError1').style.display='inline';
            noError = false;
        }
        else
        {
            document.getElementById('emailError1').style.display='none';
            if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.value.length)
            {
                email.style.border = '2px solid red';
                document.getElementById('emailError2').style.display='inline';
                noError = false;
            }
            else
            {
                email.style.border = '2px solid #0f0';
                document.getElementById('emailError2').style.display='none';
            }
        }
        return noError
    }

    function validateConfirmEmail()
    {
        var email = document.forms['registerForm']['regTxtEmail'];
        var emailConf = document.forms['registerForm']['regTxtEmailConf'];
        if (email.value != emailConf.value)
        {
            emailConf.style.border = '2px solid red';
            document.getElementById('emailConfError').style.display = 'inline';
            return false
        }
        else
        {
            emailConf.style.border = '2px solid 0f0';
            document.getElementById('emailConfError').style.display = 'none';
            return true
        }
    }

    function validatePassword()
    {
        var password = document.forms['registerForm']['regTxtPassword'];
        if (password.value == null || password.value == '' || password.value.length < 6 || password.value.search(/\d/) == -1 || password.value.search(/[A-z]/) == -1)
        {
            password.style.border = '2px solid red';
            document.getElementById('passwordError').style.display = 'inline';
            return false;
        }
        else
        {
            password.style.border = '2px solid 0f0';
            document.getElementById('passwordError').style.display = 'none';
            return true;
        }
    }

    function validatePasswordConf()
    {
        var password = document.forms['registerForm']['regTxtPassword'];
        var passwordConf = document.forms['registerForm']['regTxtPasswordConf'];
        if (password.value != passwordConf.value)
        {
            passwordConf.style.border = '2px solid red';
            document.getElementById('passwordConfError').style.display = 'inline';
            return false;
        }
        else
        {
            passwordConf.style.border = '2px solid 0f0';
            document.getElementById('passwordConfError').style.display = 'none';
            return true;
        }
    }
    </script>
function validateForm(){   
    if (validateUserName() && validateFName() && validateSName() && validateEmail() && validateConfirmEmail() && validatePassword() && validateConfirmPassword()){
        return true;
    }
    return false;
}