Я использую плагин jQuery Validator, который отлично работает. Я просто добавил еще один пользовательский метод, чтобы убедиться, что пароль содержит один номер или один специальный символ, который также отлично работает. Проблема в том, что когда это условие терпит неудачу (они просто вводят 6 символов текста), он никогда не выдает сообщение об ошибке «Ваш пароль должен содержать хотя бы одно число или специальный символ». Кто-нибудь знает, почему это было бы? Код ниже:jQuery Подтверждение пользовательского сообщения, которое не отображается для специального метода
jQuery.validator.addMethod("onespecial", function(value, element){
var pattern = /^(?=.{6,})(?=.*[a-z])(?=.*[0-9])|(?=.*[[email protected]#$%^&*()-+=]).*$/;
return (pattern.test(value));
}, "Your password must contain one number or special character");
$("#activateForm").validate({
rules: {
first_name: "required",
last_name: "required",
password: {
required: true,
minlength: 6,
onespecial: true
},
pass_confirm: {
required: true,
minlength: 6,
equalTo: "#Password",
onespecial: true
},
position: "required",
category: "required"
},
messages: {
first_name: "Please enter your first name",
last_name: "Please enter your last name",
password: "Please enter a valid password",
pass_confirm: "Your passwords much match",
position: "Please select your position",
category: "Please select your category"
}
});
Update: С Markup
<div id="activate-form">
<h1>Welcome. We just need a little bit more information.</h1>
<form action="/" id="activateForm" method="post" novalidate="novalidate"> <div><input type="text" name="first_name" class="form-input" placeholder="First name" onfocus="this.placeholder=''" onblur="this.placeholder='First name'" id="FirstName"></div> <div><input type="text" name="last_name" class="form-input" placeholder="Last name" onfocus="this.placeholder=''" onblur="this.placeholder='Last name'" id="LastName"></div> <div><select name="category" class="form-input" id="Category"><option value="">Select category</option><option value="test">test</option><option value="test">test</option></select></div>
<div><select name="position" class="form-input" id="Position"><option value="">Select Position</option><option value="RA">RA</option></select></div>
<div><input type="password" name="password" class="form-input" placeholder="Password" onfocus="this.placeholder=''" onblur="this.placeholder='Password'" id="Password"></div> <div><input type="password" name="pass_confirm" class="form-input" placeholder="Confirm password" onfocus="this.placeholder=''" onblur="this.placeholder='Confirm password'" id="PassConfirm"></div> <div><input type="hidden" name="key" value="fff" id="Key"></div> <input type="submit" value="Finish" class="button"> </form></div>
Просьба предоставить разметку HTML. – Sparky
Можете ли вы воспроизвести проблему в JsFiddle? Иногда писать скрипку позволяет найти источник проблемы самостоятельно ... В качестве дополнительной заметки, пожалуйста, также учтите, что проверка Javascript не может считаться реальной валидацией. Проверка клиента выполняется для удобства пользователя (без обратного перехода к серверу), но валидация сервера является единственной допустимой. –
** Когда вы редактируете свой вопрос SO, пожалуйста, также подтвердите его. ** Re: _ "Обновление: с помощью разметки Добро пожаловать. Нам просто нужно немного больше информации. Выберите категориюtesttest Выберите PositionRA" _ – Sparky