我在模态中显示(http://jqueryvalidation.org/)错误。
当用户没有填写电子邮件和代码字段时,它会显示一个错误消息模式,说明他们需要填写这两个字段,我点击关闭,然后显示另一个模态,但它只显示一个错误。有两个出错的地方,我在模态中点击关闭后不应该显示模态,第二件事:它只显示第二个模态出现时的最后一条错误信息(点击第一个模态中的关闭按钮后)。
提供屏幕截图,向您展示我在说什么
我做了一个计数++并在控制台中打印出来,它不止一次触发showErrors方法。我使用了错误的方法吗?我使用了showErrors,因为我可以将错误附加到消息变量中,然后将它们显示在模态中。
$("#enter-code-form").validate({
//ignore: [],
rules: {
email: {
required: true,
email: true,
},
code: {
required: true,
minlength: 8,
maxlength: 8,
},
},
messages: {
code: {
required: "Please provide a valid code",
minlength: "You need to provide a eight alpha-numeric code",
maxlength: "You need to provide a eight alpha-numeric code",
},
email: {
required: "Please provide email",
email: "Your email address must be in the format of name@domain.com"
}
},
showErrors: function(errorMap, errorList) {
var message = '';
var element = '';
$.each(errorList, function (index, error) {
message += '<p>' + error.message + '</p>';
element += error.element;
});
display_modal('You have an error', message);
console.log(message);
// console.log(element);
}
});
function display_modal(title, message)
{
$("#error-modal").modal("show");
$('.modal-title').show().html(title);
$('.modal-body-message').show().html(message);
}
答案 0 :(得分:2)
我不得不使用无效的处理程序:
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var errors = "";
if (validator.errorList.length > 0) {
for (x=0;x<validator.errorList.length;x++) {
errors += "<p>" + validator.errorList[x].message + "</p>";
}
}
display_modal('You have an error', errors);
}
validator.focusInvalid();
},