【问题标题】:jQuery function .submit() not workingjQuery函数.submit()不起作用
【发布时间】:2013-12-06 20:40:15
【问题描述】:

无法真正弄清楚为什么这段代码不起作用。

我从 MySQL 查询创建链接列表,并将它们分类以打开 jQuery onClick 对话框。以下是我生成链接和所有脚本内容的方法:

$(function(){
    $( "#select" ).dialog({
        autoOpen: false,
        width: 280,
        modal: true,
        resizable: false,
        },
        buttons: [{
            text: "Close",
            click: function() {
            $( this ).dialog( "close" );
            }
        }]
    });

    $( ".perm" ).click(function() {
        $("#select").dialog("open");
        $("#cod").val(this.id);
        $("#pass").submit();
    });
});

//And then generating links

echo "<a id=\"".$fetch['id']."\" href=\"#\" class=\"perm\">Click me</a>\n";

还有一个包含 iFrame 的 div,它将被打开到对话框中,并且应该能够将 jQuery 函数通过表单提交的隐藏值读取到 div 中。

<div id="select" title="Blabla">
    <form id="pass" target="iframe" method="post" action="permcom.php">
        <input type="hidden" name="idcom" id="cod" value="">
    </form>
    <iframe id="permcom" name="iframe" src="permcom.php"></iframe>
</div>

我也尝试使用event.preventDefault();,但没有任何反应。对话框打开,正确显示 iFrame,但在 POST 数组中找不到数据。

我唯一的目的是通过 POST 将触发函数的元素的 id 发送到 iFrame,以便在不关闭或刷新页面的情况下进行其他操作。

我哪里做错了?

【问题讨论】:

  • 试试$( ".perm" ).on('click', function(e) { e.preventDefault(); ...
  • 也可以试试echo'&lt;a id="'.$fetch['id'].'" href="#" class="perm"&gt;Click me&lt;/a&gt;\'\n';

标签: javascript php jquery html iframe


【解决方案1】:

您不能正常使用 jQuery 来访问 iframe 的内容。另外,我不知道你的表格在做什么。这是完全错误的。您可以使用 AJAX 发送 POST 数据,在 iframe 内部或外部发送数据,但不能将表单发送到 iframe。这没有任何意义。

假设表单在 iframe 内部,您需要执行以下操作:

$("#permcom").contents().find("#the-form").submit();

因此您可以访问 iframe 中的元素,而不是使用普通的表单提交。你需要乱来。

【讨论】:

  • 我发现我的问题是 jQuery 动画。我在对话框打开/关闭时使用了动画,并注意到它在动画结束后刷新页面。解决了将 POST 数据直接从框架页面放入 SESSION 数组的问题:if(isset($_POST['idcom'])) $_SESSION['idcom']=$_POST['idcom']; 无论如何谢谢 :)
猜你喜欢
  • 1970-01-01
  • 2014-12-17
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多