jQuery Validate plugin - не срабатывает правило для пароля

98
23 апреля 2021, 02:30

Хочу добавить некоторые требования к паролю:

Длина пароля должна быть не менее 8 и не более 14 символо

Пароль должен состоять из букв латинского алфавита (A-z), арабских цифр (0-9) и специальных символов

Буквенная часть пароля должна содержать как строчные, так и прописные (заглавные) буквы

Пароль должен содержать не менее одного из следующих символов: ( . , : ; ? ! * + % - < > @ [ ] { } / \ _ {} $ # ).

Делаю так:

$(document).ready(function() {
        $('form[id="reg_form"]').validate({
          rules: {
            
            password_1: {
                required: true,
                pwcheck: true,
                minlength: 8,
                maxlength: 14,
            }
          },
          messages: {
            password_1: {
                minlength: 'Password must be atleast 8 characterslong'
            }
          },
          submitHandler: function(form) {
            form.submit();
          }
        });
        $.validator.addMethod("pwcheck", function(value) {
           return /^[A-Za-z0-9\d=!\-@._*]*$/.test(value) // consists of only these
               && /[a-z]/.test(value) // has a lowercase letter
               && /\d/.test(value) // has a digit
        });
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>

 <form id="reg_form" method="post" action="?">
  <input type="password" id="password_1" name="password_1" class="form-control" placeholder="Password *" required>
 </form>

Но метод pwcheck не срабатывает вообще(

Answer 1

У вас древняя версия JQuery Попробуйте взять версию https://code.jquery.com/jquery-3.4.1.min.js - проверил работает. Как вы не заметили ошибку JS не понятно.

<html> 
<head> 
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> 
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script> 
</head> 
 
<body> 
 <form id="reg_form" method="post" action="?"> 
  <input type="password" id="password_1" name="password_1" class="form-control" placeholder="Password *" required> 
 </form> 
  
 <script> 
 $(function(){ 
	$('#reg_form').validate({ 
		rules: {  
			password_1: { 
				required: true, 
				pwcheck: true, 
				minlength: 8, 
				maxlength: 14, 
			} 
		}, 
		messages: { 
			password_1: { 
				minlength: 'Password must be atleast 8 characterslong' 
			} 
		}, 
		submitHandler: function(form) { 
			form.submit(); 
		} 
	}); 
 
	$.validator.addMethod("pwcheck", function(value) { 
	   return /^[A-Za-z0-9\d=!\-@._*]*$/.test(value) // consists of only these 
		   && /[a-z]/.test(value) // has a lowercase letter 
		   && /\d/.test(value) // has a digit 
	}, "Incorrect Password!"); 
 }); 
 </script> 
</body> 
</html>

READ ALSO
Как мне сделать чтобы блоки шли в 3 ряда а потом опускалися в низ и опять в три ряда

Как мне сделать чтобы блоки шли в 3 ряда а потом опускалися в низ и опять в три ряда

Я делаю новостную афишу и хочу чтобы блоки и информацией шли в три ряда то есть 3x3 но когда я добовляю 4 блок получается что он уходит левее

93
Приложение для работы с вконтакте

Приложение для работы с вконтакте

Я много слушаю музыку с ноутбука (vk), поэтому всегда хотел создать приложение, которое автоматически (горячие клавиши) переключает мне музыку...

106