使用javascript进行表单验证,发生错误时防止提交
我试图使用js应用表单验证,我面临的问题是无论表单中显示什么错误,表单总是提交。 表单包含6个字段:用户名、电子邮件、密码、重新键入密码、名字、姓氏。 js代码如下所示:使用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()
$(函数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"
}
});
});