将表单数据提交到弹出窗口进行处理

时间:2018-07-02 18:58:55

标签: javascript html forms submit window.open

开始的帖子太多:这可能是重复的,但是...

这就是我想要做的:

  1. 我的网站中有一个HTML页面,其中包含带有各种输入等内容的FORM元素,例如:

    <form id="form1" method="post" action="">
    Name: <input type="text" id="text1" size=10><br>
    <input type="hidden" id="hidden1" value="This text is hidden">
    <input type="checkbox" id="checkbox1" value="Y"> Include stuff?<br>
    Job Title: <select name="select1" id="select1">
    <option value="1">President</option>
    <option value="2">Chief Cook</option>
    <option value="3">Bottle Washer</option>
    </select>
    <button name="button1" id="button1" onclick="doThisScript()">Submit Stuff</button>
    </form>

  1. 我希望“ doThisScript”函数打开一个带有编码参数的新弹出窗口,该窗口指向我们网站上的url,并将表单的值传递给该url,例如:

    function doThisScript() {
    var form1=document.getElementById('form1');
    form1.onsubmit=function() {
    var w=window.open('resultsprogram.asp','resultswin','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=400,height=300');
    this.target = 'resultswin';
    form1.submit();
    }
    }

此代码(基于我在这里可以找到的最接近的问题)表格从“基本”页面转移到弹出窗口。但是,我想我要做的是将表单提交回服务器,但结果返回到该弹出窗口,而不是基础页面或新的选项卡/标准浏览器窗口。

那有可能吗?我认为必须有一种方法来创建带有URL的popupwin,将当前表单值传递给该页面,并告诉popupwin自己提交表单,以便它(而不是基础页面)获得结果。可以吗?

1 个答案:

答案 0 :(得分:0)

调用window.open()将调用服务器脚本,但不会向其发送表单参数。

您需要将表单的操作更改为服务器脚本:

function doThisScript() {
    var form1=document.getElementById('form1');
    form1.action = 'resultprogram.asp';
    form1.target = 'resultswin';
    }
}

您无需显式调用submit(),因为这是单击提交按钮的默认操作。