2014-01-27 61 views
0

我试图想出一种方法来保持页面刷新/重新加载时的表单状态。到目前为止,我已经找到dumbformstate插件。这工作很好。我唯一的问题是动态注入字段。他们不坚持刷新。任何人有任何建议,可以使用动态注入字段?保留页面刷新时的表单状态?

或者如果有人使用这个特殊的插件知道它是否应该与动态,字段,我只是插入然后错误的方式吗?这就是我要做的事:

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); 
    }); 
} 

或者是有可能,域不会持续,由于他们是一个div元素里面?他们必须在div内部是有原因的,所以我没有办法真正做到这一点。

或者我试图寻找的另一件事是一些通用的“DOM保存程序”,在那里我可以只取一些任意的DOM,并通过刷新(cookies/localstorage)保存它。但在这种情况下,我猜测投入的价值最终不会被保留下来?

编辑:

这个问题并没有真正的答案。正如我对这个插件做什么的假设是错误的。它所做的只是将有关状态的信息存储在表单的所有元素中,而不会执行任何操作来保留动态生成的DOM元素。在使用一些localStorage来存储生成的DOM之后,所有输入的状态将会像预期的那样持续下去!

回答

1

如果您在自动填充字段后实例化插件,那么该怎么办?在你的Javascript中有这样的东西:

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

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

这是否行得通?

+0

我试图在每次对表单进行更改后,按照实例化的方式做一些事情。但仍然没有拿起动态的领域。 – galdikas

+0

如果你看看插件,你会看到:[line 150] $ this.bind('blur.dumbFormState focus.dumbFormState click.dumbFormState keyup.dumbFormState change.dumbFormState',function(){...}所以你应该能够做到我所说的,并且每次更改后都不需要调用实例化,只做一次,请发布代码以查看发生了什么 –

+0

好的,我正在检查此插件存储的JSON。有关动态字段的信息确实会在页面加载时保留下来,并且插件按预期工作。问题是,HTML没有得到保留,并且从我所看到的插件不应该所以我会以某种方式自己制作它,我想,我将不得不使用一些本地存储来存储生成的DOM中的HTML,并且如果我实现了这个插件,它将处理填充表单元素。 – galdikas