【问题标题】:jQuery trigger click via $.postjQuery 通过 $.post 触发点击
【发布时间】:2011-09-04 09:46:37
【问题描述】:

我正在通过 jQuery 发布从 pagex.php 向 pagey.php 提交数据。

pagex.php 包含

$('#btn').click(function(e) {
        e.preventDefault();
        var x = 'variable1';
        var y = 'variable2';
        $.post("/pagey.php", { var1: x, var2: y}, function(data) {});
    });

pagey.php 包含

<form action=....>
<input type="text" name="x" value="<?php echo $_POST['var1'] ?>" />
<input type="text" name="y" value="<?php echo $_POST['var2'] ?>" />
<input id="submit" type="submit" value="submit" />
<script type="text/javascript">$('#submit').trigger('click')</script>

所以基本上当我将值从 pagex.php 发布到 pagey.php 时,我想在 pagey.php 上自动提交表单。 pagey.php 末尾的 jQuery 行将触发对提交按钮的自动单击。然而 jQuery 并没有触发提交点击。如果我直接访问 paygey.php(我用预定义的变量尝试过),但不是通过从 pagex 执行 $.post ,它可以工作。我假设通过使用 pagex 中的$.post,pagey 应该自动获取值并运行 jQuery 提交。这里有什么问题。

【问题讨论】:

  • 使用控制台查看正在发送的事件和值
  • @mls 帖子值正在正确发送。这是不工作的点击触发器。仅当通过浏览器直接访问 pagey 时才有效。
  • 那么按钮 id 存在问题
  • 使用正确的id,在控制台找到,$("#correctid").live(trigger,function(e){});应该工作

标签: php javascript jquery post


【解决方案1】:

我敢打赌这对你们中的一些人会有用。问候。

<?php
    echo
    "<script type='text/javascript'>
        $(document).ready(function() {  
            $('#submit').trigger('click');
        }); 
    </script>";
?>

【讨论】:

    【解决方案2】:

    我认为更大的问题是,如果您只是使用表单操作将数据重新发布到另一个页面,为什么还要将数据发布到 pagey?

    尝试将数据直接发布到操作页面,如果可行,请告诉我们。

    【讨论】:

      【解决方案3】:

      您应该直接发布到 pagey 上的操作 url...如果 pagey 是一个自动发布的简单表单,那么它的价值是什么。

      简单的答案是在 pagey 中的 document.ready 上发布表单...

      【讨论】:

        【解决方案4】:
        <input type="text" name="x" value="<?php echo $_POST[var1] ?>" />
        <input type="text" name="y" value="<?php echo $_POST[var2] ?>" />
        

        应该是

        <input type="text" name="x" value="<?php echo $_POST['var1'] ?>" />
        <input type="text" name="y" value="<?php echo $_POST['var2'] ?>" />
        

        您需要修复数组索引。

        【讨论】:

        • 是的,我已经拥有它了。这是我的问题中的一个错字。我确实提到过,如果我直接访问 pagey.php,它会起作用。
        • 这样做是否有效:$.post("/pagey.php", { var1: 'variable1', var2: 'variable2'}, function(data) {});?
        • 这与我的代码在同一行。发生了什么变化??
        【解决方案5】:

        JavaScript(支持 jQuery)不在服务器上运行,它是从您的用户浏览器中运行的。因此,据我了解,为了运行那一点点脚本,您必须实际将用户发送到 pagey.php

        【讨论】:

        • 是的,但是您可以通过将返回的文档粘贴到当前文档中来运行此代码,从而运行 javascript。但这可能还有其他并发症......
        • @JavaJosh94,那么我可以通过什么方式自动提交表单而不直接访问页面。
        • @Pinkie pagey.php 真的有必要吗?为什么不直接发布到 pagey.php 的表单操作 url 中?
        • @Pinkie 如果您的用户永远不会看到 pagey.php,我看不出它有什么意义。而不是将值传递给 pagey.php,您应该将它们从 pagex.php 传递到您将 pagey.php 提交到的同一页面。
        • 奇怪的东西。我同意 JavaJosh94。为什么你需要 pagey.php 发布到自己?我的意思是 pagey.php 可以告诉自己它在发布到自己之前第一次不知道。 (基本上 JavaJosh94 的意思是“你做错了”)。
        猜你喜欢
        • 1970-01-01
        • 2015-01-30
        • 1970-01-01
        • 1970-01-01
        • 2012-07-14
        • 1970-01-01
        • 1970-01-01
        • 2012-08-10
        • 1970-01-01
        相关资源
        最近更新 更多