Javascript Submit div内容包含表单控件状态
我有一个Javascript Submit div内容包含表单控件状态,javascript,jquery,forms,serialization,dynamic,Javascript,Jquery,Forms,Serialization,Dynamic,我有一个div,带有HTML标记和表单控件,如复选框、文本和下拉列表。我想发布整个内容以及表单控件的状态(即,捕获用户的选择)以将其保存到数据库中,然后重新呈现准确的HTML 我该怎么做?我曾经 $(“#div”).clone() 但似乎控制状态没有保存。 注意:我不想发布内部表单,然后重新呈现表单状态,因为HTML是动态的(它是一个HTML模板)如果我没有理解您的问题,您需要先将控件状态存储到HTML元素中(到标记中),然后提交div的innerHTML属性 看这把小提琴- 首先,您需要迭代指
div
,带有HTML标记和表单控件,如复选框、文本和下拉列表。我想发布整个内容以及表单控件的状态(即,捕获用户的选择)以将其保存到数据库中,然后重新呈现准确的HTML
我该怎么做?我曾经
$(“#div”).clone()
但似乎控制状态没有保存。
注意:我不想发布内部表单,然后重新呈现表单状态,因为HTML是动态的(它是一个HTML模板)如果我没有理解您的问题,您需要先将控件状态存储到HTML元素中(到标记中),然后提交div的innerHTML属性
看这把小提琴-
首先,您需要迭代指定DIV中的所有表单控件:
var ctrls = parent.querySelectorAll("input, select, textarea");
for(var i = 0; i < ctrls.length; i++){
var el = ctrls.item(i);
//...
当然,如果您需要可用的算法,那么您需要为所有表单控件类型编写条件,这只是一个示例
注意:这是纯JS解决方案,使用jQuery可能代码更简单…我已经更新了fiddle,使其更具示例性,并将整个div控件克隆到具有控件状态的新div中-您的解决方案对我有效,非常感谢,Jiri,您就是那个人。
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);
}