我目前正在使用jQuery validation plugin,我想在表单本身之前只显示一条错误消息。现在,验证显示所有错误消息在彼此堆叠时显示,正如您在我的实例中所见:
http://timkjaerlange.com/foobar/stack-stuff/validate-test.html
这是我目前的jQuery:
$(document).ready(function() {
$("form").validate({
rules: { // bunch of rules here, left out to keep it simple },
messages: { // messages goes here },
errorElement: 'div',
errorClass: 'error',
errorPlacement: function(error, element) {
error.insertBefore('form'); // this is what I've got
}
});
});
但我只想显示最新的错误消息,所以要将下一个错误替换为上一个错误,我想做这样的事情:
errorPlacement: function(error, element) {
$('div').replaceWith(error); // trying to replace the prev error
}
有人知道怎么做吗?这是仅显示一条错误消息的最佳方式吗?
非常感谢任何帮助。
答案 0 :(得分:1)
听起来像是一个可行的解决方案,但replaceWith
会将div
替换为错误label
,并且在所有后续调用中都会失败,因为找不到div
。
这应该这样做
$('div').empty().append(error);
只是旁注。这可能会导致不必要的行为。试想一下,例如3个字段无效。生成3个错误标签,然后将它们放在此内(相互覆盖)。因此,只有最后一个标签可见。但是当用户修复显示的错误时会发生什么?尽管2个字段仍无效,但不会显示错误。
答案 1 :(得分:0)
将其作为演示文稿问题处理,只使用CSS隐藏非第一个错误元素;)