我有div
个HTML标记和表单控件,如check boxes, text and drop lists
。我想发布整个内容以及表单控件的状态(即捕获用户的选择)以将其保存到数据库中,然后重新呈现确切的HTML。
我该怎么做?我用了
$("#div").clone()
但似乎没有保存控制状态。 注意:我不想发布内部表单,然后重新呈现表单状态,因为HTML是动态的(它是HTML模板)
答案 0 :(得分:0)
如果我理解你的问题,你需要首先将控制状态存储到HTML元素中(到标记),然后提交div的innerHTML属性......
看到这个小提琴 - http://jsfiddle.net/esy1cc8z/
首先,您需要遍历指定DIV中的所有表单控件:
var ctrls = parent.querySelectorAll("input, select, textarea");
for(var i = 0; i < ctrls.length; i++){
var el = ctrls.item(i);
//...
然后将各种表单控件的状态存储为DOM元素作为属性(= HTML中的默认值):
var type = el.getAttribute("type");
//For checkbox
//Checkbox
if(type == "checkbox"){
if(el.checked)
el.setAttribute("checked", "checked");
else
el.removeAttribute("checked");
//Other textual / numeric input types
} else {
el.setAttribute("value", el.value);
}
当然,如果您需要可用的算法,那么您需要为所有表单控件类型编写条件,这只是一个示例......
注意:这是纯JS解决方案,使用jQuery可能是更简单的代码......