使用javascript进行表单验证,发生错误时防止提交

使用javascript进行表单验证,发生错误时防止提交,javascript,php,html,Javascript,Php,Html,我试图使用js应用表单验证,我面临的问题是无论表单中显示什么错误,表单总是提交。 表单包含6个字段:用户名、电子邮件、密码、重新键入密码、名字、姓氏。 js代码如下所示: $(函数checkForBlank(){ $(“#username_err_msg”).hide(); $(“#email_err_msg”).hide(); $(“#pwd#u err_msg”).hide(); $(“#确认_pwd_err_msg”).hide(); $(“#fname_err_msg”).hide()

我试图使用js应用表单验证,我面临的问题是无论表单中显示什么错误,表单总是提交。 表单包含6个字段:用户名、电子邮件、密码、重新键入密码、名字、姓氏。 js代码如下所示:

$(函数checkForBlank(){
$(“#username_err_msg”).hide();
$(“#email_err_msg”).hide();
$(“#pwd#u err_msg”).hide();
$(“#确认_pwd_err_msg”).hide();
$(“#fname_err_msg”).hide();
$(“#lname_err_msg”).hide();
var username\u err=false;
var email_err=false;
var pwd_err_msg=false;
var confirm_pwd_err_msg=false;
var fname_err=false;
var lname_err=false;
$(“#用户名”).focusout(函数(){
检查用户名();
});
$(“#输入电子邮件”).focusout(函数(){
检查电子邮件();
});
$(“#密码”).focusout(函数(){
检查_pwd();
});
$(“#inputConfirmPassword”).focusout(函数(){
检查_pwd_conf();
});
$(“#inputFirstName”).focusout(函数(){
检查_fname();
});
$(“#inputLastName”).focusout(函数(){
检查_lname();
});
函数检查\u用户名(){
var username_length=$(“#username”).val().length;
如果(用户名长度<5 | |用户名长度>20){
$(“#username_err_msg”).html(“username必须介于5到20个字符之间!”;
$(“#username_err_msg”).show();
username\u err=true;
}否则{
$(“#username_err_msg”).hide();
}
}
功能检查{
var pass=$(“#密码”).val();
var pass_length=$(“#password”).val().length;
变量re=/^[a-zA-Z_0-9@!\\$\^%&*()+=\-[]\\\',\.\/\\\\\\\\\\\\\\\\\”:\?]+$/;
//如果pwd小于10且不包含特殊字符
if(通过长度<6){
$(“#pwd#u err_msg”).html(“弱!”);
$(“#pwd#u err_msg”).show();
pwd_err_msg=true;
}否则{
//如果pwd大于等于5或等于6且通过长度小于9且通过重新测试(通过)){
$(“#pwd#u err_msg”).html(“中!”);
$(“#pwd#u err_msg”).show();
pwd_err_msg=true;
}否则{
//如果pwd>11且包含特殊字符
如果(通过长度>=9&&!重新测试(通过)){
$(“#pwd#u err_msg”).html(“Strong!”);
$(“#pwd#u err_msg”).show();
pwd_err_msg=true;
}否则{
$(“#pwd#u err_msg”).hide();
}
}
}
}
功能检查_pwd_conf(){
var pass1=$(“#密码”).val();
var pass2=$(“#inputConfirmPassword”).val();
if(pass1!=pass2){
$(“#confirm_pwd_err_msg”).html(“密码不匹配!”);
$(“确认错误消息”).show();
pwd_err_msg=true;
}否则{
$(“#确认_pwd_err_msg”).hide();
}
}
功能检查_电子邮件(){
变量re=/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@“]+)*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.]124;([a-zA Z-0-9]++\];
var email=$(“#inputEmail”).val();
if(重新测试(电子邮件))//有效电子邮件地址
{
$(“#email_err_msg”).hide();
}否则{
$(“#email_err_msg”).html(“无效的电子邮件地址!”);
$(“#email_err_msg”).show();
email_err=true;
}
}
函数检查\u fname(){
var fname_length=$(“#inputFirstName”).val().length;
var first=$(“#inputFirstName”).val();
变量re=/\d/g;
如果(fname_长度20){
$(“#fname_err_msg”).html(“名字必须在2到20个字符之间!”);
$(“#fname_err_msg”).show();
fname_err=true;
}否则{
如果(重新测试(第一次)){
$(“#fname_err_msg”).html(“名字不能包含数字!”);
$(“#fname_err_msg”).show();
fname_err=true;
}否则{
$(“#fname_err_msg”).hide();
}
}
}
函数检查\u lname(){
var lname_length=$(“#inputLastName”).val().length;
var sec=$(“#inputLastName”).val();
变量re=/\d/g;
如果(名称长度20){
$(“#lname_err_msg”).html(“姓氏必须介于2到20个字符之间!”);
$(“#lname_err_msg”).show();
lname_err=真;
}否则{
如果(重新测试(秒)){
$(“#lname_err_msg”).html(“姓氏不得包含数字!”);
$(“#lname_err_msg”).show();
lname_err=真;
}否则{
$(“#lname_err_msg”).hide();
}
}
}
});
$(函数checkForBlank(){
$(“#username_err_msg”).hide();
$(“#email_err_msg”).hide();
$(“#pwd#u err_msg”).hide();
$(“#确认_pwd_err_msg”).hide();
$(“#fname_err_msg”).hide();
$(“#lname_err_msg”).hide();
var username\u err=false;
var email_err=false;
var pwd_err_msg=false;
var confirm_pwd_err_msg=false;
var fname_err=false;
var lname_err=false;
$(“#用户名”).focusout(函数(){
检查用户名();
});
$(“#输入电子邮件”).focusout(函数(){
检查电子邮件();
});
$(“#密码”).focusout(函数(){
检查_pwd();
});
$(“#inputConfirmPassword”).focusout(函数(){
检查_pwd_conf();
});
$(“#inputFirstName”).focusout(函数(){
检查_fname();
});
$(“#inputLastName”).focusout(函数(){
检查_lname();
});
函数检查\u用户名(){
var username_length=$(“#username”).val().length;
如果(用户名长度<5 | |用户名长度>20){
$(“#username_err_msg”).html(“username必须介于5到20个字符之间!”;
$(“#username_err_msg”).show();
username\u err=true;
}否则{
$(“#username_err_msg”).hide();
}
}
功能检查{
var pass=$(“#密码”).val();
var pass_length=$(“#password”).val().length;
变量re=/^[a-zA-Z_0-9@!\\$\^%&*()+=\-[]\\\',\.\/\\\\\\\\\\\\\\\\\”:\?]+$/;
//如果pwd小于10且不包含特殊字符
if(通过长度<6){
$(“#pwd#u err_msg”).html(“弱!”);
$(“#pwd#u err_msg”).show();
pwd_err_msg=true;
}否则{
//如果pwd大于等于5或等于6且通过长度小于9且通过重新测试(通过)){
$(“#pwd#u err_msg”).html(“中!”);
$(“#pwd#u err_msg”).show();
pwd_err_msg=true;
    (function() {
            $("#username_err_msg").hide();
            $("#email_err_msg").hide();
            $("#pwd_err_msg").hide();
            $("#confirm_pwd_err_msg").hide();
            $("#fname_err_msg").hide();
            $("#lname_err_msg").hide();

            var username_err = false;
            var email_err = false;
            var pwd_err_msg = false;
            var confirm_pwd_err_msg = false;
            var fname_err = false;
            var lname_err = false;

            $("#userName").focusout(function() {
                check_userName();
            });
            $("#inputEmail").focusout(function() {
                check_email();
            });
            $("#password").focusout(function() {
                check_pwd();
            });
            $("#inputConfirmPassword").focusout(function() {
                check_pwd_conf();
            });
            $("#inputFirstName").focusout(function() {
                check_fname();
            });
            $("#inputLastName").focusout(function() {
                check_lname();
            });
            $("#formId").on("submit", checkForBlank);

            function check_userName() {
                var username_length = $("#userName").val().length;
                if (username_length < 5 || username_length > 20) {
                    $("#username_err_msg").html("Username must be between 5 and 20 characters ! ");
                    $("#username_err_msg").show();
                    username_err = true;
                } else {
                    $("#username_err_msg").hide();
                    username_err = false;
                }
            }

            function check_pwd() {
                var pass = $("#password").val();
                var pass_length = $("#password").val().length;
                //var re = /^[a-zA-Z_0-9@\!#\$\^%&*()+=\-[]\\\';,\.\/\{\}\|\":<>\? ]+$/;
                var re = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$/;
                //if pwd is less than 10 and doesnt contain special chars
                if (pass_length < 6) {
                    $("#pwd_err_msg").html("Weak ! ");
                    $("#pwd_err_msg").show();
                    pwd_err_msg = true;
                } else {
                    //if pwd is >= 5 or <= 10,and contains special char
                    if (pass_length >= 6 && pass_length < 9 && !re.test(pass)) {
                        $("#pwd_err_msg").html("Medium! ");
                        $("#pwd_err_msg").show();
                        pwd_err_msg = true;
                    } else {
                        //if pwd >11 and contains special char
                        if (pass_length >= 9 && !re.test(pass)) {
                            $("#pwd_err_msg").html("Strong! ");
                            $("#pwd_err_msg").show();
                            pwd_err_msg = true;
                        } else {
                            $("#pwd_err_msg").hide();
                            pwd_err_msg = false;
                        }
                    }
                }
            }

            function check_pwd_conf() {
                var pass1 = $("#password").val();
                var pass2 = $("#inputConfirmPassword").val();
                if (pass1 != pass2 || pass2.length === 0) {
                    $("#confirm_pwd_err_msg").html("Passwords don't match! ");
                    $("#confirm_pwd_err_msg").show();
                    confirm_pwd_err_msg = true;
                } else {
                    $("#confirm_pwd_err_msg").hide();
                    confirm_pwd_err_msg = false;
                }
            }

            function check_email() {
                var re = /^(([^<>()\[\]\\.,;:\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 email = $("#inputEmail").val();
                if (re.test(email)) //valid email address
                {
                    $("#email_err_msg").hide();
                    email_err = false;
                } else {
                    $("#email_err_msg").html("Invalid email address!");
                    $("#email_err_msg").show();
                    email_err = true;
                }
            }

            function check_fname() {
                var fname_length = $("#inputFirstName").val().length;
                var first = $("#inputFirstName").val();
                var re = /\d/g;
                if (fname_length <= 2 || fname_length > 20) {
                    $("#fname_err_msg").html("First name must be between 2 and 20 characters ! ");
                    $("#fname_err_msg").show();
                    fname_err = true;
                } else {
                    if (re.test(first)) {
                        $("#fname_err_msg").html("First name must not contain digits ! ");
                        $("#fname_err_msg").show();
                        fname_err = true;
                    } else {
                        $("#fname_err_msg").hide();
                        fname_err = false;
                    }
                }
            }

            function check_lname() {
                var lname_length = $("#inputLastName").val().length;
                var sec = $("#inputLastName").val();
                var re = /\d/g;
                if (lname_length <= 2 || lname_length > 20) {
                    $("#lname_err_msg").html("Last name must be between 2 and 20 characters ! ");
                    $("#lname_err_msg").show();
                    lname_err = true;
                } else {
                    if (re.test(sec)) {
                        $("#lname_err_msg").html("Last name must not contain digits ! ");
                        $("#lname_err_msg").show();
                        lname_err = true;
                    } else {
                        $("#lname_err_msg").hide();
                        lname_err = false;
                    }
                }
            }

            function checkForBlank(e) {
                check_userName();
                check_email();
                check_pwd();
                check_pwd_conf();
                check_fname();
                check_lname();

                if(username_err || email_err || pwd_err_msg || confirm_pwd_err_msg || fname_err || lname_err) {
                    e.preventDefault();
                }
            }
        }());
$().ready(function() {
        // validate form on keyup and submit
        $("#FORMID").validate({
            rules: {
                username: "required",
                email: "required",
                password: "required",
                retype_pass: {
                    required: true,
                    equalTo:"#password"
                }
                first_name: "required",
                last_name: "required"
            },
            messages: {
                username: "Please enter Username",
                email : "Please enter a valid Email",
                password: "Please enter a password",
                retype_pass: {
                    required: "Please confirm your password",
                    equalTo: "Please enter the same password as above"
                },
                first_name: "Please enter first name",
                last_name: "Please enter last name"
            }
        });
    });