从cookie中的文本区域保存值,然后重新加载页面

时间:2014-09-11 10:42:37

标签: javascript jquery cookies

我有一些文本区域和一个表格,我想在文本区域按下键后更改。

$("#fioFilter").keydown(function(e){
    $.cookie("fioFilter",$("#fioFilter").val());
});
$("#fioFilter").keyup(function(e){
    window.location.reload();
});

这是我的解决方案。这不符合我的要求。如果按住某个键,它会保存在cookie中,然后重新加载。但是,如果我只按一次按键。它重新加载并返回旧值。有什么问题? http://jsfiddle.net/d6fpfzsu/

1 个答案:

答案 0 :(得分:1)

我在Windows XP上使用Opera 12.17

这是我的解决方案:

$(document).ready(function()
{
    var time;
    if($.cookie('fioFilter')!=null)
    {
        $("#fioFilter").focus().text($.cookie('fioFilter'));
    }
    $("#fioFilter").keyup(function(e){
        clearTimeout(time);
        $.cookie("fioFilter",$("#fioFilter").val());
        time=setTimeout(function(){$("#fioFilter").change();},500);
    });
    $("#fioFilter").change(function(e){
        window.location.reload();
    });
});

我通过从keydown更改为keyup来实现它。

重新加载在change事件上完成,该事件在500毫秒后或<textarea>失去焦点时触发。 设置焦点之前值可确保提示保持在最后 这是一个&#34;修复&#34;仅用于镀铬。

如果设置了cookie,它将聚焦元素。

您可以在此处查看代码:http://jsfiddle.net/w6hk7w6b/5/

注意

我知道我可以设置var并保存选择器。

我不是为了简单(和懒惰)而做的。