Я добавил в свою форму условие, что одна прописная, одна маленькая и 8 символов, просто если критерии не соответствуют моей форме, не должны быть отправлены, но здесь моя форма отправлена, даже если этот критерий не соответствует и показывает мне сообщение об успехе.Я не знаю, в чём проблема.
Мой код js / ajax:
$('#password_change_form').submit(function(e) {
e.preventDefault();
var saveThis = $(this);
$.ajax({
type: "POST",
url: "/changepassword",
data: $(saveThis).serialize(),
success: function(data) {
$(".success-messages").text("Heslo bylo úspěšně změněno").fadeIn();
setTimeout(function(){
$(".success-messages").fadeOut('slow');
},4000);
$('#password_change_form').trigger("reset");
},
error: function (data) {
$(".error-messages").text("Zadali jste špatné heslo").fadeIn();
setTimeout(function(){
$(".error-messages").fadeOut('slow');
},4000);
$('#password_change_form').trigger("reset");
}
});
}),
и правила проверки в моей форме:
var FormValidation = function () {
var e = function () {
var e = $("#password_change_form"),r = $(".alert-danger", e), i = $(".alert-success", e);
e.validate({
errorElement: "span",
errorClass: "help-block help-block-error",
focusInvalid: !1,
ignore: ":hidden",
rules: {
new_password: { required: !0,password_validate:!0 },
password_confirmation: {
equalTo: "#new_password"
}
},
messages: {
new_password:{ required: "Zapomněli jste zadat nové heslo."},
password_confirmation:{ equalTo: "Hesla nesouhlasí."}
},
invalidHandler: function (e, t) {
i.hide(), r.show()
},
errorPlacement: function (e, r) {
r.is(":checkbox") ? e.insertAfter(r.closest(".md-checkbox-list,.checkbox-label, .md-checkbox-inline, .checkbox-list, .checkbox-inline"),r.closest(".checkbox").addClass("has-error")) : r.is(":radio") ? e.insertAfter(r.closest(".md-radio-list, .md-radio-inline, .radio-list,.radio-inline")) : e.insertAfter(r)
},
highlight: function (e) {
$('.help-block').html('');$(e).closest(".form-group").addClass("has-error")
},
unhighlight: function (e) {
$(e).closest(".form-group").removeClass("has-error")
},
success: function (e) {
e.closest(".form-group").removeClass("has-error")
}
})
};
return {
init: function () {
e();
}
}
}();
$(document).ready(function () {
FormValidation.init();
$.validator.addMethod("password_validate",function(value,element){
return this.optional(element) || /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$/i.test(value);
},"Nové heslo musà obsahovat minimálnÄ› 8 znaků, jedno velké a malé pÃsmeno a ÄÃslo. ProsÃm zkontrolujte, že vámi zadané heslo splňuje tyto podmÃnky.");
});
Я не знаю, где находитсяпроблема, которую моя форма не должна представлять, если критерии не соответствуют, но здесь она отправляет форму.
Ребята действительно нуждаются в вашей помощи здесь.