我正在使用bootstrap中的工具提示替换默认错误,从而覆盖errorPlacement方法。但是当需要项目并且还有任何其他类型的验证时,所需的内容将取代任何其他错误。
我想知道我是否遗漏了验证中的某些内容,或者这是否是预期的行为。
jsfiddle中的一个例子是:http://jsfiddle.net/CwnUR/8/
$(function() {
$('form').validate({
errorElement: 'span',
errorClass: 'error',
validClass: 'success',
errorPlacement: function (error, element) {
element.attr({ 'title': error.text() }).tooltip({
placement: 'right',
trigger: 'manual',
delay: { show: 500, hide: 5000 }
}).tooltip('show');
},
success: function (label, element) {
$(element).tooltip('destroy');
}
});
$("#exampleInputEmail1").rules("add", {
required: true,
email: true
});
$("#exampleInputEmail2").rules("add", {
required: true,
equalTo: $("#exampleInputEmail1"),
messages: {
equalTo: 'Please retype the same email again.'
}
});
});
答案 0 :(得分:2)
问题是工具提示未正确更新。当错误第一次触发时,它会显示正确的警告。例如,如果我单击使用空电子邮件地址提交,我会收到正确的错误,说明该字段是必需的。任何后续尝试获取任何其他错误(如无效的电子邮件地址)都不会显示。但是,我在点击提交之前写了一些文字,我收到了无效的电子邮件地址错误,然后取代了任何其他错误。
所以,我所做的就是破坏errorPlacement
函数中的工具提示。
代码提取:
errorPlacement: function (error, element) {
$(element).tooltip('destroy');
element.attr({
'title': error.text()
}).tooltip({