2

我在父窗口中有一个表格,

<form id="myform">
<username>
<password>
</form>

在 jQuery 中

$("#myform").submit(function(e){

e.preventDefault(); // prevent default form submit

//some of my other codes ...

});

window.open用来打开一个新窗口

var popupWindow =  window.open("myUrl");

我正在尝试从弹出窗口提交myform表单

$(window.opener.document.getElementById("myform")).submit();

表单正在提交,但问题是它使用默认表单提交而不是我的附加事件。

我做错了什么?

请帮我。谢谢。

4

4 回答 4

1

我知道了。

我意识到如果事件是从其他资源触发的,则通过 jQuery 附加的事件不起作用。

但它适用于带有内联事件的纯js,

<form id="myform" onsubmit=" process(); "></form>

它运作良好。

谢谢。

于 2012-12-18T06:11:31.580 回答
1

这就是我的工作:

父.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <input type="button" value="Try Me..." onclick='window.open("Child.html");' />
    <form action="post.html" method="post" id="myForm">

    </form>
</body>
</html>

Child.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script>
        function submitParent() {

            window.opener.document.forms["myForm"].submit();
            window.close();
        }
    </script>
</head>
<body>
    <input type="button" onclick="submitParent();" value="Submit Parent" />
</body>
</html>

单击“提交父级”时,它会关闭子级,并将父级提交到“Post.html”。

祝你好运!

于 2012-12-18T06:03:30.347 回答
-1

尝试这样的事情

        <div id="divform">
            <form action="/system/wpacert" method="post" enctype="multipart/form-data" name="certform">
                <div>Certificate 1: <input type="file" name="cert1"/></div>
                <div>Certificate 2: <input type="file" name="cert2"/></div>

                <div><input type="button" value="Upload" onclick="closeSelf();"/></div>
            </form>
        </div>
        <div  id="closelink" style="display:none">
            <a href="javascript:window.close()">Click Here to Close this Page</a>
        </div>

function closeSelf(){
    document.forms['certform'].submit();
    hide(document.getElementById('divform'));
    unHide(document.getElementById('closelink'));

}
于 2012-12-18T05:45:39.247 回答
-1

使用时打开一个新窗口window.open。这开始了一个新的线程。您无法访问相同的 DOM 上下文以及其中包含的元素和事件。

于 2012-12-18T05:47:43.373 回答