dplase3140 2017-07-10 06:34
浏览 67

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

I'm trying to apply form validation using js,the problem I'm facing is the form always submits no matter what errors are shown in the form. the form contains 6 fields: username,email,password,retype_pass, first_name,last_name. the js code is like this:

$(function checkForBlank() {
  $("#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();
  });


  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();
    }
  }

  function check_pwd() {

    var pass = $("#password").val();
    var pass_length = $("#password").val().length;
    var re = /^[a-zA-Z_0-9@\!#\$\^%&*()+=\-[]\\\';,\.\/\{\}\|\":<>\? ]+$/;
    //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();
        }
      }
    }
  }

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

  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();
    } 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();
      }
    }
  }

  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();
      }
    }
  }

});

</div>
  • 写回答

3条回答 默认 最新

  • doudichu1358 2017-07-10 06:37
    关注

    $(function checkForBlank() {
      $("#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();
      });
    
    
      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();
        }
      }
    
      function check_pwd() {
    
        var pass = $("#password").val();
        var pass_length = $("#password").val().length;
        var re = /^[a-zA-Z_0-9@\!#\$\^%&*()+=\-[]\\\';,\.\/\{\}\|\":<>\? ]+$/;
        //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();
            }
          }
        }
      }
    
      function check_pwd_conf() {
        var pass1 = $("#password").val();
        var pass2 = $("#inputConfirmPassword").val();
        if (pass1 != pass2) {
          $("#confirm_pwd_err_msg").html("Passwords don't match! ");
          $("#confirm_pwd_err_msg").show();
          pwd_err_msg = true;
        } else {
          $("#confirm_pwd_err_msg").hide();
        }
      }
    
      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();
        } 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();
          }
        }
      }
    
      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();
          }
        }
      }
    
    
    
    });

    </div>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败