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

Save value from text area in cookie and then reload page

本文关键字:新加载 然后 加载 区域 文本 保存 cookie 存在      更新时间:2023-09-26

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

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

这是我的解决方案。这不符合我的意愿。若我按住按键一段时间,它会保存在cookie中,然后重新加载。但若我只按一次键。它重新加载并返回旧值。怎么了?http://jsfiddle.net/d6fpfzsu/

我在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事件上完成的,该事件在500ms后或<textarea>失去焦点时触发
在值之前设置焦点可确保提示保持在末尾
这只是针对chrome的"修复"。

如果存在cookie集,它将聚焦元素。

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

注意

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

我不会为了简单(和懒惰)而做这件事。