在新窗口中自动提交表单

时间:2011-11-23 08:15:00

标签: java php javascript magento

我现在已经工作了大约2个小时,似乎无法找到解决方案。我知道你可以这样做:

<form target="_blank"

仅在用户提交时才有效。问题是,这个表单是使用javascript提交的。它是自动提交的。所以当我做document.formname.submit();并且表单具有attrivute target =“_ blank”,它给出了以下错误:

Error: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (ns_error_failure) [nsidomhtmlformelement.submit]" nsresult: "0x80004005 (ns_error_failure)" location: "JS frame :: [lazyjhunting.com...] :: <TOP_LEVEL> :: line 95" data: no]

所以没有人知道如何自动提交表格并在新窗口中打开结果吗?

非常感谢任何帮助。非常感谢。

3 个答案:

答案 0 :(得分:1)

可以做到..请检查以下代码:

    window1.jsp
    -----------------

        <script type="text/javascript">
        function formSubmit(){
            document.forms['myform'].submit();
        }
        </script>

        <form action="window2.jsp" method="get" name="myform">
        <input type="text" name="name">
        <input type="button" name="clickMe" value="clickMe" onclick="formSubmit();">
        </form>



        window2.jsp
        -----------------
        <body>
        <%= (String)request.getParameter("name")%>
        </body>

你可以用任何方式执行document.forms['myform'].submit(),我只是用简单的按钮调用函数formSubmit来执行document.forms['myform'].submit()

答案 1 :(得分:1)

我认为你不能这样做因为浏览器的弹出窗口拦截器会阻止打开没有用户交互的新窗口,类似于弹出窗口的阻塞方式。例如,您必须将其绑定到click事件。

答案 2 :(得分:0)

你当然可以做到。这是基本代码

<html>
<head>
</head>
<body onload="document.f.submit();">
<form target="_blank" id='f' name='f' method='POST' action="http://www.yahoo.com">

</form>

<input type='button' name='btn' value='Submit' onclick='document.f.submit();' />
</body>
</html>

问题是(也许这只是一个不好的例子)为什么你想要在加载事件上提交一个表单?如果页面刚加载,用户还没有机会输入任何内容。那么,什么用户输入被发布。如果是从数据库加载的内容,为什么要立即发布它,而不是在服务原始页面之前在服务器上执行任何操作。

如果您要将数据发布到刚从db加载的另一个窗口,为什么不打开一个单独的窗口并直接从数据库加载该数据?也许我只是错过了什么。