将表单提交到特定窗口

时间:2014-10-07 08:57:40

标签: javascript jquery html forms

我在弹出窗口的iframe中有一个HTML表单,并希望将其提交到弹出窗口的打开窗口(window.parent.opener)。该窗体不存在于打开窗口中,但仅存在于弹出窗口的iframe中。最简单的方法是什么?

我认为表单目标没有帮助,因为它们只允许指定_parent,而打开窗口没有iframename。只要它不可见,就可以在打开窗口中动态地重新创建iframe的表单。是否有一个库可以动态创建给定序列化表单数据的表单?

(首选jQuery解决方案)

2 个答案:

答案 0 :(得分:1)

您无法序列化表单中的所有数据并通过window.parent.opener将其传递给父级吗?

或者使用类似window.parent.opener.location = "http://something.com?var1=test&var2=test"的网址。

对于POST,请尝试使用dinamically设置目标:

document.whateverForm.target = window.parent.opener.window.name;

答案 1 :(得分:1)

在另一个窗口中动态地重新创建表单,结果并没有我想象的那么糟糕。这段代码应该这样做:

var originalForm = $('#myForm');
var values = originalForm.serializeArray();
var newForm = $('<form>').attr({method: 'post', action: originalForm.prop('action')});
$.each(values, function(i, val) {
    newForm.append($('<input>').attr({type: 'hidden'}).attr(val));
});
$('body', window.parent.opener.document).append(newForm);
newForm.submit();