【发布时间】:2021-01-06 10:51:20
【问题描述】:
如何防止在提交表单时显示多条错误消息?
我只想显示最后一个已验证字段的错误消息:password。我尝试按照另一篇文章中的建议使用errorPlacement:jQuery validation - only show one error message 和$('.alert').remove();,但没有成功。
到目前为止我得到了什么:
<script>
let form = $('#login');
$('#login').validate({
onkeyup: false,
onclick: false,
rules: {
username: {
required: true
},
password: {
required: true
}
},
errorPlacement: function(error) {
$('.alert').remove();
let div = $(
'<div class="alert alert-warning alert-dismissable">\n' +
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>\n' +
'<h4><i class="icon fa fa-warning"></i>Opgepast!</h4>\n' +
'<p>' + error.text() + '</p>\n' +
'</div>'
);
div.insertBefore(form);
},
messages: {
username: {
required: "Gelieve een gebruikersnaam in te vullen."
},
password: {
required: "Gelieve een wachtwoord in te vullen."
}
}
});
</script>
【问题讨论】:
-
当您单击提交按钮时,两条错误消息将依次显示。密码信息排在第二位,因此它是提交表单后显示的信息。也就是说,我个人无法重现该问题。
-
是的,正确,提交后,显示所需的错误消息。但是,当我单击
username字段输入值时,onclick: false似乎不再起作用,因为它立即显示适用于该字段的错误消息。是不是我配置错了? -
基本上,我只想在按下提交按钮时完成验证,如果有错误消息,则只显示最后一个。
-
显示足够的代码来重现问题。您的表单的 HTML 标记在哪里?
-
我想你可能想回去read the documentation again。如果您希望消息显示在表单之外,则不会使用
errorPlacement- 这是用于表单内的自定义放置,例如在输入之前或之后。查看showErrors,以及处理消息和消息列表的其他选项。
标签: javascript jquery jquery-validate