我有一个表单,当单击一个按钮时,会附加新的输入。 提交时一切正常,但如果我点击后面的浏览器,则所有附加的字段都会丢失..
点击此浏览器的按钮有没有办法维护它们?
谢谢!
答案 0 :(得分:1)
您的附加元素仅存在于未由任何浏览器缓存的DOM中。
我建议您使用Cookie来解决此问题,请查看https://github.com/carhartl/jquery-cookie
向这样的cookie添加内容
$.cookie("row", "a new row or whatever");
// or preferably a json
var myJsonRow = {
row: 1,
value: "Test"
}
$.cookie("row", JSON.stringify(myJsonRow));
要阅读这个非常简单的cookie,只需使用
即可$.cookie("row");
现在显然你需要比这更高级的东西,但这可以在json对象中处理。
首先创建一个你觉得舒服的json模式,类似这样的
// Basic row-pattern
var cookieRows = {
rows: [
{
value: "row 1",
type: "radio"
},
{
value: "row 2",
type: "text"
},
{
value: "row 3",
type: "password"
},
]
}
并实施
$(document).ready(function(){
// Test if the cookie is set
if(!$.cookie("rows")) {
var cookieRows = {
rows: []
}
// Register the pattern
$.cookie("rows", JSON.stringify(cookieRows));
}
// Adding rows
// Register your event handler
$("#control").click(function(){
// Get the control element
var controlElement = $(this);
// Fetch the needed information and create a row
var cookieRow = {
value: controlElement.val(),
type: controlElement.attr('type')
}
// Get the cookie
var cookieRows = JSON.parse($.cookie("rows"));
// Add the value to the cookie
cookieRows.rows.push(cookieRow);
// And save the cookie
$.cookie("rows", JSON.stringify(cookieRows));
});
});
好吧,你明白了!