提交div内容包含表单控件状态

时间:2015-05-28 10:02:14

标签: javascript jquery forms serialization dynamic

我有div个HTML标记和表单控件,如check boxes, text and drop lists。我想发布整个内容以及表单控件的状态(即捕获用户的选择)以将其保存到数据库中,然后重新呈现确切的HTML。

我该怎么做?我用了

$("#div").clone()

但似乎没有保存控制状态。 注意:我不想发布内部表单,然后重新呈现表单状态,因为HTML是动态的(它是HTML模板)

1 个答案:

答案 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可能是更简单的代码......