【问题标题】:How to validate password and confirm password using jquery [duplicate]如何使用jquery验证密码和确认密码[重复]
【发布时间】:2018-05-07 00:56:59
【问题描述】:

您好,我必须验证密码并确认密码,我的限制是当我访问页面时,确认密码文本框应该被禁用,

当我点击只为密码字段提交所需消息时,它不应该验证确认密码,

当我在密码字段中输入正确的密码时,应启用确认密码字段

正确的密码意味着它应该包含至少8个字符,1个大写字母,1个小写字母,1个数字,1个特殊字符

输入确认密码后点击检查应该验证两者是否相同

  <form id="formCheckPassword">
        <input type="password"  name="password" id="password"/>
        <p id="passerror"></p>    
        <br>
        <input type="password"  name="cfmPassword" id="cfmPassword" disabled /><br>
        <input type="submit" value="submit" id="s"/>
     </form>

jQuery

  $(document).ready(function() {
                $("#s").click(function(event) {
          var passerror = "";
          var pass =  $.trim($("#password").val());
          if (pass == "") {
                        passerror = "pass is required";
                        $("#passerror").html(passerror);
                        $("#passerror").show();
                        event.preventDefault();
                    } 
            if(pass!= cfmPassword)
            {
             display error message

            }
            else
            {

            }
       });

      $("#password").focusout(function(){
          var pwd=$("#password").val();
                var errorMessage = "";
                    function isValidPassword(emailAddress) {
                      var pattern = new RegExp(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$/);
                      return pattern.test(emailAddress);
                    };
                    if (!isValidPassword(pwd.val())) {
                      errorMessage = "<br />Please enter a valid email address";
                      $("#error").html(errorMessage);
                      $( "#error" ).show();
                      event.preventDefault();

                    }

        });     
            });

css

  #passerror{  
        color: red;
    }

任何人都可以更新代码

http://jsfiddle.net/BSdc8/285/

【问题讨论】:

  • 不建议在你的js端验证它,它可以轻松绕过你的后端验证它
  • @Beginner 我的解释是客户端验证只会确保密码符合密码规则,并且匹配验证字段。实际检查密码是否正确将在服务器端完成。

标签: jquery


【解决方案1】:

jQuery.validator.setDefaults({
  debug: true,
  success: "valid"
});

// function to validate first password

$.validator.addMethod("pwcheck", function(value) {
return /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})/.test(value)
});

$( "#myform" ).validate({
  rules: {
     password:{
	required:true,
	minlength:8,
	pwcheck:true
	},
    password_again:{
	minlength:8,
	equalTo :'#Password'
	}
  }
});
<html>
<head>
<meta charset="utf-8">
<title>Makes "field" required to be the same as #other</title>
<link rel="stylesheet" href="https://jqueryvalidation.org/files/demo/site-demos.css">
 
</head>
<body>
<form id="myform">
<label for="password">Password</label>
<input id="password" name="password" />
<br/>
<label for="password_again">Again</label>
<input class="left" id="password_again" name="password_again" />
<br>
<input type="submit" value="Validate!">
</form>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
</body>
</html>

【讨论】:

  • OP 说at leaset 8 characters in that 1 upper case letter,1 lower case letter,1 number,1 special character
  • 代码已更新。请检查。 @Carsten
猜你喜欢
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
  • 1970-01-01
  • 2013-07-11
  • 2012-09-24
  • 2018-12-25
  • 2015-04-03
相关资源
最近更新 更多