我需要对jQuery Validator显示的错误进行工具提示分组。所以我用setInterval编写了一个简单的循环来检查同一行中是否有多个带错误类的输入。
setInterval(function() {
$('.xrror').remove();
$('div.row-4:has([name].error)').each(function() {
var tmp = $('[name].error', this);
if(tmp.length > 1) {
$('label.error', this).hide();
tmp.last().parent().append(
$(document.createElement('label')).addClass('error').addClass('xrror').append(
$(document.createElement('span')).text('Fields with errors were marked with red color')
)
);
} else {
$('[name].error', this).parent().find('label.error').show();
}
});
}, 50);
在Opera中,它会导致打开的Select元素闪烁。
答案 0 :(得分:2)
不是每50毫秒使用一个setInterval函数,这会占用大量资源,你应该在提交或更改等事件上绑定你的函数。由于它似乎与表单验证有关,除非用户修改字段,否则您无需执行任何操作。