Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否在页面刷新时保留表单状态?_Javascript_Jquery_Dom - Fatal编程技术网

Javascript 是否在页面刷新时保留表单状态?

Javascript 是否在页面刷新时保留表单状态?,javascript,jquery,dom,Javascript,Jquery,Dom,我正试图想出一种在页面刷新/重新加载时保持表单状态的方法。到目前为止,我已经找到了插件。它工作得很好。我唯一的问题是动态注入字段。它们不会在刷新期间持续存在。有人对动态注入字段有什么建议吗 或者,如果有人使用过这个特定的插件,知道它是否应该与动态、字段一起工作,而我只是以错误的方式插入?我就是这样做的: success: function(data) { var html = $("<div><h3>"+catName+"</h3></div&g

我正试图想出一种在页面刷新/重新加载时保持表单状态的方法。到目前为止,我已经找到了插件。它工作得很好。我唯一的问题是动态注入字段。它们不会在刷新期间持续存在。有人对动态注入字段有什么建议吗

或者,如果有人使用过这个特定的插件,知道它是否应该与动态、字段一起工作,而我只是以错误的方式插入?我就是这样做的:

success: function(data) {
    var html = $("<div><h3>"+catName+"</h3></div>");
    html.find("h3").data("category",catName);
    subCatContainer.append(html);
    subCatsFetched = subCatContainer.find("h3");

    $(data).each(function(){
        var input = $('<label>'+this.sub_cat_name+'<input type="checkbox" name="sub_cat[]" value="'+this.sub_cat_id+'" /></label>');
        html.append(input);
    });
}
成功:函数(数据){
var html=$(“”+catName+“”);
html.find(“h3”).data(“category”,catName);
附加(html);
subCatsFetched=subCatContainer.find(“h3”);
$(数据)。每个(函数(){
变量输入=$(''+此.sub_目录名称+'');
html.append(输入);
});
}
或者字段是否可能由于位于
div
元素中而无法持久化?他们必须呆在div里面是有原因的,所以我实在无能为力

或者另一件我试图寻找的东西,是一些通用的“DOM保存器”,在这里我可以获取任意的DOM片段,并通过刷新(cookies/localstorage)来保存它。但在这种情况下,我猜输入值最终不会被保留

编辑:


这个问题实际上没有答案。正如我对这个插件所做的假设一样,这是错误的。它所做的只是存储表单所有元素的状态信息,而不保存动态生成的DOM元素。在使用一些本地存储来存储生成的DOM之后,所有输入的状态都会像预期的那样保持不变

如果您在自动填充字段后实例化插件如何?在Javascript中类似这样的内容:

//Load field's content
loadData( ... );

//Instantiate plugin
$('your-form').dumbFormState( ... )

这行得通吗?

每次更改表单后,我都试图按照实例化的思路做一些事情。但是仍然没有获取动态字段。如果您查看插件,您将看到:[第150行]$this.bind('blur.dumbFormState focus.dumbFormState click.dumbFormState keyup.dumbFormState change.dumbFormState',函数(){…}所以你应该能够按照我说的做。而且,没有必要在每次更改后调用实例化,只需执行一次。请发布你的代码,看看发生了什么。好的,我在检查了这个插件存储的JSON之后。关于动态字段的信息确实会在页面加载过程中保留下来,插件的工作方式如下预期。问题是,HTML没有得到保留,从我所看到的来看,这个插件不应该这样做。所以我将自己制作它,我想,我将不得不使用一些本地存储来存储生成的DOM中的HTML,如果我实现了,这个插件将处理表单元素的填充。好的,那么我误解了你的问题。是的,如果你想存储HTML,你必须使用某种浏览器存储;请注意,它只在用户的浏览器上工作,如果用户打开另一个浏览器则不工作。如果你要存储HTML,你可能想看看模板是什么。这是一个很好的开始:不,你没有误解。我我自己误解了这个插件的实际功能。不管怎样,我现在正在努力持久化表单HTML,我仍然有一些问题。但是当我持久化HTML时,生成字段的状态确实得到了保留。谢谢你的帮助!