<input />
中有多个<textarea>
和<form>
,但没有他们的ID或名称。
是否可以拍摄<form>
内的所有内容并在需要时进行渲染?
答案 0 :(得分:3)
我不确定为什么你会有一堆缺少名字和id的输入,但是你可以循环并为每个输入生成一个名称/ id,然后使用$ .serialize()序列化它们。
// Give all a name (e0, e1, e2...)
$(":input").each(function(i){
$(this).attr("name", "e"+i);
});
// Serialize the data
var data = $("#formid").serialize(); // ex: e0=zip&e1=foo&e2=bar
答案 1 :(得分:1)
var formdata = $("#formid").serialize();
答案 2 :(得分:0)
已更新此答案适用于复选框,单选按钮,输入和textareas。如果您想要选择支持,只需添加一个额外的测试/类型和并行设置器。
存储值:
var values = $.map($("form :input"), function(n, i){
if(n.is(':checkbox, :radio'))
return [n.is(':checked'), "check"];
else
return [n.val() , "val"];
};
恢复值:
$("form :input").each(function(i, el){
var val = values[i];
if(val[1] == "check"){
if(val[0] == true) $(this).attr('checked', 'checked');
else $(this).removeAttr('checked');
} else {
$(this).val(val[1]);
}
});
这两次都假定相同的顺序。(不敢说)不可能存储没有keys
的值,然后以不同的顺序恢复它们,仍然具有与正确字段匹配的值。您需要name
或id
来区分..期间。