如何在页面刷新时触发事件

时间:2012-11-08 04:48:55

标签: jquery

我们网站的后端开发人员有一个div.errors用于表单处理,除非表单提交中有错误,否则它始终存在但是为空。它很容易隐藏div,然后检查它是否有长度,如果它显示它。

if ($(".errors").text().trim().length) {
    $(this).css('display', 'block');
}

问题在于,在页面加载时,div.errors为空并隐藏。当您提交表单时,如果出现错误,div.erros会有长度,但页面会刷新(再次加载),并且事件不会再次触发。 .live是一个可行的选择吗?

2 个答案:

答案 0 :(得分:2)

问题是this停止引用元素:

$(".errors").each(function () {
    if ($(this).text().trim().length) {
        $(this).css('display', 'block');
    }
});

答案 1 :(得分:1)

实时不是一个选项,当您向页面动态添加元素时使用实时。您需要某种状态管理技术来保存页面刷新之间div.errors的值。我建议你使用cookies,因为它们可以在JQuery中轻松访问。