我们网站的后端开发人员有一个div.errors用于表单处理,除非表单提交中有错误,否则它始终存在但是为空。它很容易隐藏div,然后检查它是否有长度,如果它显示它。
if ($(".errors").text().trim().length) {
$(this).css('display', 'block');
}
问题在于,在页面加载时,div.errors为空并隐藏。当您提交表单时,如果出现错误,div.erros会有长度,但页面会刷新(再次加载),并且事件不会再次触发。 .live是一个可行的选择吗?
答案 0 :(得分:2)
问题是this
停止引用元素:
$(".errors").each(function () {
if ($(this).text().trim().length) {
$(this).css('display', 'block');
}
});
答案 1 :(得分:1)
实时不是一个选项,当您向页面动态添加元素时使用实时。您需要某种状态管理技术来保存页面刷新之间div.errors的值。我建议你使用cookies,因为它们可以在JQuery中轻松访问。