php - 如何使用jQuery在父窗口中提交表单而不刷新父窗口的内容(Ajax提交)

标签 php javascript jquery jquery-ui

我尝试使用 jQuery 从子 iframe 提交父窗口中包含的表单,但运气不佳。

在子窗口中我有以下验证功能:

<script type="text/javascript" src="templates/js/jquery.js"></script>
<script type="text/javascript" src="templates/js/jquery.validate.js"></script>
<script>
    $(document).ready(function(){
        $("#form_invoice_item").validate({
            submitHandler: function (form) {

                // Check if main invoice already saved
                if ($('#invoice_id').val() == "") {

                    // Change target to processing iframe
                    try {
                        parent.$('#invoice_form').ajaxSubmit();
                    } catch(e) { //debug
                        alert ("Error:" + e);
                    }

                } else {
                    alert ("Saving invoice " + $('#invoice_id').val() + ' items');                         }

                //form.submit(); //debug
            }
        });              
    });
</script>
<form method="post" id="form_invoice_item" name="form_invoice_item" action="index.php" target="invoice_items">

parent.$('#invoice_form').ajaxSubmit();处发生的错误是

Error:TypeError: Object [object Object] has no method 'ajaxSubmit'

如果我使用以下纯 JavaScript 代码片段,就没有问题(显然这不是 jQuery,但它可以完成工作)。我如何在 jQuery 中执行此操作:

parent.document.getElementById('invoice_form').target='process';
parent.document.getElementById('invoice_form').submit();
parent.document.getElementById('invoice_form').target='';

我有一个名为 process 的隐藏 iframe,其显示属性设置为隐藏。

最佳答案

如果您处于弹出窗口中并且想要访问打开的窗口,请使用window.opener .

试试这个:

window.opener.$('#invoice_form').ajaxSubmit();

而不是这个:

parent.$('#invoice_form').ajaxSubmit();

另请参阅this发布。

-----编辑-----

不要忘记在您调用它的窗口中加载 jQuery 表单插件:

<script src="http://malsup.github.com/jquery.form.js"></script>

关于php - 如何使用jQuery在父窗口中提交表单而不刷新父窗口的内容(Ajax提交),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13231353/

相关文章:

php - 将日文字符保存到 MySQL 中

php - cURL 登录到 HTTPS 站点

javascript - 如何发出警报();页面完全加载后显示?

javascript - 从网页(Rails)控制linux进程的最佳实践是什么?

jquery - 如何在验证和提交后更改表单的包含 div?

javascript - 在 Firefox 和 Edge 中隐藏滚动条

javascript - Jquery 菜单和 Logo 切换

php - 基于键将 5 个数组与 php 组合

PHP,sql 动态查询可能与 LIKE 和 OR 和 AND 一起使用,但无法以正确的方式工作

javascript - 如何使用 JavaScript/CSS 为 DOM 元素设置动画