【问题标题】:Why does Jquery submit() fail with an error?为什么 Jquery submit() 失败并出现错误?
【发布时间】:2009-07-07 09:39:59
【问题描述】:

我在页面上有一个简单的表单,我想在某些事件发生时自动提交它。

下面的测试代码尝试在页面加载后立即提交表单,但失败了。 Firebug 说“H[G] 不是函数”。 H[G] 似乎是“提交”。

我做的事情真的很愚蠢吗?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>test</title>
</head>
<body>
    <form action="/test.php" method="post" id="packingform">
        <input name="bob" value="1" type="text" />
        <input type="submit" name="submit" value="hello" />
    </form>
    <script type="text/javascript" src="/js/jquery.js"></script>
    <script type="text/javascript">
    // <![CDATA[
    $(document).ready(function() 
    {
        // This line fails with an error and the form is not submitted
        $("#packingform").submit();
    }
    );
    // ]]>
    </script>
</body>
</html>

【问题讨论】:

    标签: jquery forms submit


    【解决方案1】:

    知道了。

    事实证明,如果您的表单中有一个命名的提交按钮,则 submit() 将失败。以下是 jquery 错误报告的链接:http://dev.jquery.com/ticket/4652

    解决方法是将&lt;input type="submit" name="submit" value="hello" /&gt;
    改为&lt;input type="submit" value="hello" /&gt;

    我希望这对其他人有帮助...

    【讨论】:

    • ...表单仍然没有在 FF 中发布,“动作”中的“/”...或者这只发生在我的电脑上?
    • 关于命名问题,只有提交按钮命名为“提交”时才有问题;如果它被命名为别的东西,表格仍然可以毫无问题地发布
    • 对我来说一切都感觉有点不稳定。我可能需要查看 jQuery 的源代码才能弄清楚为什么它会如此敏感。当我更改提交名称时,它在 FF 和 Safari 中工作,这是我需要支持这个项目(内部)的唯一 2 个浏览器。
    • 谢谢!该死的..它把我逼疯了
    • 请注意,当您有 any 字段名为 submit 时会触发该错误。例如我也遇到了名为 submithidden 字段的问题。
    【解决方案2】:

    问题似乎出在 Firefox 上的 action="/test.php",因为它适用于 Chrome 和 IE

    尝试将其更改为 action="test.php" 并重试。

    【讨论】:

    • 当我将action设置为test.php时,这里提交的表单
    • 你使用的是什么 jquery 版本?我用 1.3.2 试过了
    【解决方案3】:

    我的猜测是您的 jQuery.js 文件有问题。也许尝试用从jQuery website 下载的新副本替换 jQuery.js 文件。

    【讨论】:

      【解决方案4】:

      您好,确实非常有帮助, 我浪费了大约 16 个小时来查看发生了什么,解决方案是更改提交按钮的名称 谢谢

      【讨论】:

        【解决方案5】:

        我遇到了类似的问题,我的提交按钮没有“名称”,只有“id”。

        无论如何这解决了我的问题:

        $("#submitButton").click();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多