html表单没有保存它's元素'从网页传递到子iframe时的属性
html form not holding it's elements' attributes when being passed from web page to child iframe?
我有一个表单,由用户在网页上完成,当用户提交表单时,我会弹出一个引导模式对话框,这个对话框中有一个iframe,它从父窗口加载表单,调用其中的一个函数,如下所示:
//parent window
var formToSubmit;
function getForm(){
return formToSubmit;
}
$("#submitButton").click(function(){
//alterations to the elements in $("mainForm")
formToSubmit = $("mainForm");
$("#modalDialog").modal();
//...
});
//modal iframe
var parentForm = parent.window.getForm();
$("#mainDiv").append(parentForm[0].outerHTML);
$("form").submit(function(){
parent.window.closeModalWindow(); //not sure whether this will close AFTER the form is completely submitted yet
});
$("form").submit();
我的问题是,我将这些表单提交给microsoft-sql-server报告服务,它将每个输入元素都作为一个参数。我无法控制这件事。
因此,当用户在主窗体中单击提交时,我禁用了所有不能设置为参数的元素,问题是;当我从父窗口获得表单并将其附加到模态iframe时,似乎所有这些更改都丢失了,有什么方法可以保留吗?
您的问题可能与表单上对outerHTML的调用有关。首先,outerHTML的实现在不同的浏览器中是不同的,所以如果可能的话,我会避免使用它。其次,outerHTML不一定包含活动DOM元素,而只是将其作为字符串进行转储。
因此,我建议在将表单传递给您的IFRAME之前对其进行深度克隆。
使用jQuery(参见文档):
$("#mainDiv").append(parentForm.clone(true));
或者纯JavaScript(请参阅文档):
document.getElementByid('mainDiv').appendChild(parentForm[0].cloneNode(true));
我运行了一些测试来验证这一点,只要你正在克隆表单,你就会得到你期望的结果。
作为旁注,你为什么要用模态来复制这个形式?你是不是在为用户重新创建一个"请查看"类型的东西?这似乎是一个奇怪的过程。我只是问,因为也许有更好的方法来满足你的要求。不管怎样,我给出的答案应该会有所帮助。
- 如何使用javascript/jquery获取iframe的URL的锚点属性
- 附加'沙箱'属性设置为动态创建的iframe以停止重定向
- 更改多个 iframe 中的文本框属性
- 如何在 iframe 中创建 HTML5 数据属性
- 单击没有 src 属性的 iframe 中的元素
- 取消 iframe 中具有 target=“_parent” 属性的链接事件
- 为什么当我尝试为iframe-src属性构建URL时,AngularJS会抛出错误
- Displaynone属性停止在Firefox中播放youtube iframe
- 占位符属性嵌入IE中的iframe时不起作用
- 可以't使用iframe获取占位符属性以在IE中工作
- 如何获得"src”;来自多个嵌套iframe源的属性
- 谷歌地图Api在CRM Dynamics 2011 iframe"不可能使用显示属性“;消息
- AngularJS - 如何在 iframe 元素更改时读取 SRC 属性
- 想要从子 iframe 更新父 iframe 的属性
- 在具有跨源的 iframe 中设置数据属性值
- 使用 javascript 按属性获取 iframe 的元素
- 如何从 iframe 元素更改元素属性
- 如何在跨域更改 iframe SRC URL 锚标记属性 target=_blank
- 更改 iframe 源中加载的定位点属性内容
- 使用 jquery 更改 iframe 属性