У меня странный сценарий. У меня есть форма с текущим паролем, новым паролем и полем подтверждения нового пароля.
- Требуется текущий пароль.
- Новый пароль не требуется, если пользователь не хочет его изменить, в этом случае он должен соответствовать требованиям регулярного выражения (
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*\"]).{6,16}?$
). - Подтверждение нового пароля не требуется, но совпадает с новым паролем.
Ниже приведено подключение MVC cshtml.
<li>
<label for="Password" class="required">Current Password</label>
@Html.TextBoxFor(m => m.UserInfoData.Password, new
{
@type = "password",
@class = "k-textbox",
@placeholder = "Current Password",
@validationmessage = "Current Password Required!",
@required = "required"
})
</li>
<li>
<label for="NewPassword" class="required">New Password</label>
@Html.TextBoxFor(m => m.UserInfoData.NewPassword, new
{
@type = "password",
@class = "k-textbox",
@placeholder = "New Password",
@required = "required",
@pattern = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*\"]).{6,16}?$",
})
</li>
<li>
<label for="ConfirmNewPassword" class="required">Confirm New Password</label>
@Html.TextBoxFor(m => m.UserInfoData.ConfirmNewPassword, new
{
@type = "password",
@class = "k-textbox",
@placeholder = "Confirm New Password",
@verifypasswords = string.Empty
})
</li>
<li class="confirm">
<button class="k-button k-primary" type="submit" id="submitSetingsData">Update Details</button>
</li>
Ниже приведено мое подключение jQuery с проверкой кендо.
$("#settings").kendoValidator({
rules: {
verifyPasswords: function (input) {
var result = true;
if (input.is("[name=UserInfoData.ConfirmNewPassword]")) {
result = input.val() === $("#UserInfoData_NewPassword").val();
}
return result;
}
},
messages: {
verifyPasswords: "New passwords do not match!"
}
});
Проверка работает нормально, но я не могу сделать поле «Новый пароль» необязательным. Шаблон HTML5 требует required
, но я хочу сделать это поле необязательным, если пользователь оставит его пустым, я бы не стал проверять его, но если пользователь вводит какие-либо данные, он должен соответствовать регулярному выражению. Я использовал ?
в конце регулярного выражения, но это не делает его необязательным. Буду очень признателен за любое возможное решение или подсказку по проверке кендо или html5. Спасибо.