Подтвердите пароль с помощью jQuery Validate
Я пытаюсь использовать плагин jQuery validate для подтверждения ввода пароля.
однако, я не хочу, чтобы это было обязательное поле.
просто если пользователь хочет изменить пароль, необходимо подтвердить его.
если нет, то оба поля не должны быть проверены.
jQuery('.validatedForm').validate({
rules: {
password: {
required: true,
minlength: 5
},
password_confirm: {
required: true,
minlength: 5,
equalTo: "#password"
}
}
});
это работает отлично, но опять же, оба поля являются обязательными.
Я хотел бы, чтобы это необязательно, в случае если кто-то просто хочет изменить например электронной почты или имя пользователя и оставьте пароль.
5 ответов:
удалить
required: true
правило.демо: Скрипка
jQuery('.validatedForm').validate({ rules : { password : { minlength : 5 }, password_confirm : { minlength : 5, equalTo : "#password" } }
просто быстрый перезвон здесь, чтобы, надеюсь, помочь другим... Особенно с более новой версией (так как это 2 года)...
вместо некоторых статических полей, определенных в JS, вы также можете использовать
data-rule-*
атрибуты. Вы можете использовать как встроенные, так и пользовательские правила.см.http://jqueryvalidation.org/documentation/#link-list-of-built-in-validation-methods для встроенных правил.
пример:
<p><label>Email: <input type="text" name="email" id="email" data-rule-email="true" required></label></p> <p><label>Confirm Email: <input type="text" name="email" id="email_confirm" data-rule-email="true" data-rule-equalTo="#email" required></label></p>
Примечание
data-rule-*
атрибуты.
он работает, если значение id и значение имени отличаются:
<input type="password" class="form-control"name="password" id="mainpassword"> password: { required: true, } , cpassword: {required: true, equalTo: '#mainpassword' },
я реализовываю его в Play Framework и для меня это сработало так:
1) Обратите внимание, что я использовал data-rule-equalTo во входном теге для идентификатора inputPassword1. Раздел кода userform в моем модальном:
<div class="form-group"> <label for="pass1">@Messages("authentication.password")</label> <input class="form-control required" id="inputPassword1" placeholder="@Messages("authentication.password")" type="password" name="password" maxlength=10 minlength=5> </div> <div class="form-group"> <label for="pass2">@Messages("authentication.password2")</label> <input class="form-control required" data-rule-equalTo="#inputPassword1" id="inputPassword2" placeholder="@Messages("authentication.password")" type="password" name="password2"> </div>
2), так как я использовал валидатор в модальном
$(document).on("click", ".createUserModal", function () { $(this).find('#userform').validate({ rules: { firstName: "required", lastName: "required", nationalId: { required: true, digits:true }, email: { required: true, email: true }, optradio: "required", password :{ required: true, minlength: 5 }, password2: { required: true } }, highlight: function (element) { $(element).parent().addClass('error') }, unhighlight: function (element) { $(element).parent().removeClass('error') }, onsubmit: true }); });
надеюсь, что это поможет кому-то :).