Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
can';在javascript中验证后,不要提交表单_Javascript_Html - Fatal编程技术网

can';在javascript中验证后,不要提交表单

can';在javascript中验证后,不要提交表单,javascript,html,Javascript,Html,帮助,我正在验证我的表单。它可以验证所有字段,但验证后不能提交。我试图在中运行代码,但在验证表单后,它无法进入test.html页面。我是javascript新手,所以我不知道问题出在哪里。任何帮助都将不胜感激。谢谢 代码如下: //HTML表单 <form name="form" id="form" onsubmit="return (validateForm(this));" action="test.htm" method="post"> 名字 用户名 密码 确认

帮助,我正在验证我的表单。它可以验证所有字段,但验证后不能提交。我试图在中运行代码,但在验证表单后,它无法进入test.html页面。我是javascript新手,所以我不知道问题出在哪里。任何帮助都将不胜感激。谢谢

代码如下:

//HTML表单

<form name="form" id="form" onsubmit="return (validateForm(this));" action="test.htm" method="post">

名字
  • 用户名
  • 密码
  • 确认密码
  • 电子邮件地址
  • //Javascript代码

    var borderErr = "1px solid rgb(100,0,50)";
    var borderOk = "1px solid rgb(0,150,50)";
    var warn = "<b class='warn'>!</b>";
    
    // for First Name validation
    var matchfName = /^[a-zA-Z]$/;
    var errorfNameEmpty = "<b class='err'>First name is required";
    
    // for Username validation
    var matchUsername = /^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/;
    var matchUsername2 = /^[a-z0-9_-]{5,15}$/;
    var errorUsernameEmpty = "<b class='err'>Username is required\n</b>";
    var errorUsernameInvalid = "<b class='err'>The username is not valid. Must contains 5 to 15 alpha numeric characters\n</b>";
    
    // for Password validation
    var matchPass = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{7,15}$/;
    var errPassEmpty = "<b class='err'>Password is required</b>";
    var errPassInvalid = "<b class='err'>Password must contains with a combination of <br/>7 to 15 alpha numeric and special characters.";
    
    // for Confirm Password validation
    var errPassEmpty2 = "<b class='err'>Confirm password is required</b>";
    var errPassInvalid2 = "<b class='err'>Confirm password must the same as password value.";
    
    // for Email validation
    var matchEmail = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    var errEmailEmpty = "<b class='err'>Email address is required</b>";
    var errEmailInvalid = "<b class='err'>Invalid email address. Please enter a valid email.";
    
     function validateForm(regForm) {
        var warning = "";
    warning += validatefName(regForm.firstname);
    warning += validateUsername(regForm.username);
    warning += validatePassword(regForm.password);
    warning += validatePassword2(regForm.password2);
    warning += validateEmail(regForm.email);
    if (warning != "") {
    return false;   
    }
    return true;
    }
    // validate first name
    
    function validatefName(fld) {
    if(fld.value == "") {
        fld.style.border=borderErr;
        document.getElementById("errfName").innerHTML=errorfNameEmpty;
        document.getElementById("warnfName").innerHTML=warn;
            return false;
    }
    else {
        fld.style.border=borderOk;
        document.getElementById("errfName").innerHTML="First Name";
        document.getElementById("warnfName").innerHTML="";
            return true;
    }   
    }
    
    //validate username
    
    function validateUsername(fld) {
    if (fld.value == "") {
        fld.style.border=borderErr;
        document.getElementById("errUser").innerHTML=errorUsernameEmpty;
        document.getElementById("warnUser").innerHTML=warn;
            return false;
        }  
    else if ((!matchUsername.test(fld.value)) || (!matchUsername2.test(fld.value))) {
        fld.style.border=borderErr;
        document.getElementById("errUser").innerHTML=errorUsernameInvalid;
        document.getElementById("warnUser").innerHTML=warn;
            return false;
         } 
    else {
        document.getElementById("errUser").innerHTML="Username";
        document.getElementById("warnUser").innerHTML="";
        fld.style.border=borderOk;
            return true;
         } 
    }
    
     // validate password
    
    function validatePassword(fld) {
    if (fld.value == "") {
        fld.style.border=borderErr;
        document.getElementById("errPass").innerHTML=errPassEmpty;
        document.getElementById("warnPass").innerHTML=warn;
            return false;
    }
    else if (!matchPass.test(fld.value)) {
        document.getElementById("errPass").innerHTML=errPassInvalid;
        document.getElementById("warnPass").innerHTML=warn; 
        fld.style.border=borderErr;
            return false;
     }
    else {
        fld.style.border=borderOk;
        document.getElementById("errPass").innerHTML="Password";
        document.getElementById("warnPass").innerHTML="";
            return true;
        }
    } 
     // validate confirm password
    
    function validatePassword2(fld) {
    var passVal = document.getElementById("password").value;
    if (fld.value == "") {
        fld.style.border=borderErr;
        document.getElementById("errPass2").innerHTML=errPassEmpty2;
        document.getElementById("warnPass2").innerHTML=warn;
            return false;
    }
    else if (passVal != fld.value) {
        document.getElementById("errPass2").innerHTML=errPassInvalid2;
        document.getElementById("warnPass2").innerHTML=warn; 
        fld.style.border=borderErr;
            return false;
    }
    else {
        fld.style.border=borderOk;
        document.getElementById("errPass2").innerHTML="Confirm Password";
        document.getElementById("warnPass2").innerHTML="";
            return true;
        }
    }  
    
     // validate email address
    
    function validateEmail(fld) {
        if (fld.value == "") {
        fld.style.border=borderErr;
        document.getElementById("errEmail").innerHTML=errEmailEmpty;
        document.getElementById("warnEmail").innerHTML=warn; 
            return false;
        } 
    else if (!matchEmail.test(fld.value)) { 
        fld.style.border=borderErr;
        document.getElementById("errEmail").innerHTML=errEmailInvalid;
        document.getElementById("warnEmail").innerHTML=warn; 
            return false;
        } 
    else {
        fld.style.border=borderOk;
        document.getElementById("errEmail").innerHTML="Email Address";
        document.getElementById("warnEmail").innerHTML=""; 
            return true;
        }
     }
    
    var borderErr=“1px实心rgb(100,0,50)”;
    var borderOk=“1px实心rgb(0150,50)”;
    var warn=“!”;
    //用于名字验证
    var matchfName=/^[a-zA-Z]$/;
    var errorfnamempty=“需要名字”;
    //用于用户名验证
    var matchUsername=/^[A-Za-z][A-Za-z0-9]*(?:[A-Za-z0-9]+)*$;
    var matchUsername2=/^[a-z0-9_-]{5,15}$/;
    var errorUsernameEmpty=“需要用户名\n”;
    var errorUsernameInvalid=“用户名无效。必须包含5到15个字母数字字符\n”;
    //用于密码验证
    变量matchPass=/^(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[^a-zA-Z0-9])(?!.\s)。{7,15}$/;
    var errPassEmpty=“需要密码”;
    var errPassInvalid=“密码必须包含7到15个字母数字和特殊字符的组合。”;
    //用于确认密码验证
    var errPassEmpty2=“需要确认密码”;
    var errPassInvalid2=“确认密码必须与密码值相同。”;
    //用于电子邮件验证
    var matchEmail=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\\,;:\s@\“]+*)(\“+\”)@((\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.])){124;([a-zA Z-0-9]+-zA 0-9]+-Z]/-[a-2}.];
    var errEmailEmpty=“需要电子邮件地址”;
    var errEmailInvalid=“无效的电子邮件地址。请输入有效的电子邮件。”;
    函数validateForm(regForm){
    var警告=”;
    警告+=validatefName(regForm.firstname);
    警告+=validateUsername(regForm.username);
    警告+=validatePassword(regForm.password);
    警告+=validatePassword2(regForm.password2);
    警告+=validateEmail(regForm.email);
    如果(警告!=“”){
    返回false;
    }
    返回true;
    }
    //验证名字
    函数validatefName(fld){
    如果(fld.value==“”){
    fld.style.border=borderErr;
    document.getElementById(“errfName”).innerHTML=errorfNameEmpty;
    document.getElementById(“warnfName”).innerHTML=warn;
    返回false;
    }
    否则{
    fld.style.border=borderOk;
    document.getElementById(“errfName”).innerHTML=“First Name”;
    document.getElementById(“warnfName”).innerHTML=“”;
    返回true;
    }   
    }
    //验证用户名
    函数validateUsername(fld){
    如果(fld.value==“”){
    fld.style.border=borderErr;
    document.getElementById(“errUser”).innerHTML=errorUsernameEmpty;
    document.getElementById(“warnUser”).innerHTML=warn;
    返回false;
    }  
    如果(!matchUsername.test(fld.value))| |(!matchUsername.test(fld.value)),则为else{
    fld.style.border=borderErr;
    document.getElementById(“errUser”).innerHTML=errorUserName无效;
    document.getElementById(“warnUser”).innerHTML=warn;
    返回false;
    } 
    否则{
    document.getElementById(“errUser”).innerHTML=“Username”;
    document.getElementById(“warnUser”).innerHTML=“”;
    fld.style.border=borderOk;
    返回true;
    } 
    }
    //验证密码
    功能验证密码(fld){
    如果(fld.value==“”){
    fld.style.border=borderErr;
    document.getElementById(“errPass”).innerHTML=errPassEmpty;
    document.getElementById(“warnPass”).innerHTML=warn;
    返回false;
    }
    否则,如果(!匹配通过测试(fld值)){
    document.getElementById(“errPass”).innerHTML=errPassInvalid;
    document.getElementById(“warnPass”).innerHTML=warn;
    fld.style.border=borderErr;
    返回false;
    }
    否则{
    fld.style.border=borderOk;
    document.getElementById(“errPass”).innerHTML=“Password”;
    document.getElementById(“warnPass”).innerHTML=“”;
    返回true;
    }
    } 
    //验证确认密码
    函数validatePassword2(fld){
    var passVal=document.getElementById(“密码”).value;
    如果(fld.value==“”){
    fld.style.border=borderErr;
    document.getElementById(“errPass2”).innerHTML=errPassEmpty2;
    document.getElementById(“warnPass2”).innerHTML=warn;
    返回false;
    }
    else if(passVal!=fld.value){
    document.getElementById(“errPass2”).innerHTML=errPassInvalid2;
    document.getElementById(“warnPass2”).innerHTML=warn;
    fld.style.border=borderErr;
    返回false;
    }
    否则{
    fld.style.border=borderOk;
    document.getElementById(“errPass2”).innerHTML=“确认密码”;
    document.getElementById(“warnPass2”).innerHTML=“”;
    返回true;
    }
    }  
    //验证电子邮件地址
    功能验证邮件(fld){
    如果(fld.value==“”){
    fld.style.border=borderErr;
    document.getElementById(“errEmail”).innerHTML=errEmailEmpty;
    document.getElementById(“warnEmail”).innerHTML=warn;
    返回false;
    } 
    如果(!matchEmail.test(fld.value)){
    fld.style.border=borderErr;
    document.getElementById(“errEmail”).innerHTML=errEmailInvalid;
    document.getElementById(“warnEmail”).innerHTML=warn;
    返回false;
    } 
    否则{
    fld.style.border=borderOk;
    document.getElementById(“errEmail”).innerHTML=“电子邮件地址”;
    document.getElementById(“warnEmail”).innerHTML=“”;
    返回true;
    }
    }
    
    尝试更改此行

    var warning = "";
    warning += validatefName(regForm.firstname);
    warning += validateUsername(regForm.username);
    warning += validatePassword(regForm.password);
    warning += validatePassword2(regForm.password2);
    warning += validateEmail(regForm.email);
    if (warning != "") {
    
    if(validatefName(regForm.firstname) == true && validateUsername(regForm.username) == true && validatePassword(regForm.password) == true && validatePassword2(regForm.password2) == true && validateEmail(regForm.email) == true) {
    
    这条线

    var warning = "";
    warning += validatefName(regForm.firstname);
    warning += validateUsername(regForm.username);
    warning += validatePassword(regForm.password);
    warning += validatePassword2(regForm.password2);
    warning += validateEmail(regForm.email);
    if (warning != "") {
    
    if(validatefName(regForm.firstname) == true && validateUsername(regForm.username) == true && validatePassword(regForm.password) == true && validatePassword2(regForm.password2) == true && validateEmail(regForm.email) == true) {
    

    现在看看它是否正确

    根据你的小提琴,我在你的代码中发现了一些错误

    if (title=="" || title==null) { } else {
                alert("Please enter only alphanumeric values for your advertisement title");
    
    }
    
    应该是

    if (title.length != 0) { } else {
                alert("Please enter only alphanumeric values for your advertisement title");
                return false;
      }
    
    第二种方法是检查字段是否没有值的更有效的方法

    我还在您的else条件中添加了return false,最后一次返回应该为true。 这是您的validateForm函数。我更新了你的


    由于内部验证方法返回true或false,因此需要将父验证方法修改为this或simi
    function validateForm(regForm) {
        var formValid = true;
        formValid &= validatefName(regForm.firstname);
        formValid &= validateUsername(regForm.username);
        formValid &= validatePassword(regForm.password);
        formValid &= validatePassword2(regForm.password2);
        formValid &= validateEmail(regForm.email);
        if (!formValid) {
            return false;   
        }
        return true;
    }
    
    function validateForm()
    {
        var flag = 1;
    
        // Validate URL
        var url = $("#frurl").val();
        if (validateURL(url)) { } else {
            alert("Please enter a valid URL, remember including http://");
            flag++;
        }
    
        // Validate Title
        var title = $("#frtitle").val();
        if (title=="" || title==null) { } else {
            alert("Please enter only alphanumeric values for your advertisement title");
            flag++;
        }
    
        // Validate Email
        var email = $("#fremail").val();
        if ((/(.+)@(.+){2,}\.(.+){2,}/.test(email)) || email=="" || email==null) { } else {
            alert("Please enter a valid email");
            flag++;
        }
    
        if (flag == 1)
        return true;
        else     
        return false;
    }