代码之家  ›  专栏  ›  技术社区  ›  Rik Heywood

为什么jquery submit()失败并出现错误?

  •  4
  • Rik Heywood  · 技术社区  · 15 年前

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

    下面的测试代码试图在页面加载后立即提交表单,但失败了。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>
    
    5 回复  |  直到 10 年前
        1
  •  10
  •   Serge Wautier    12 年前

    知道了。

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

    解决办法是改变 <input type="submit" name="submit" value="hello" />
    <input type="submit" value="hello" />

    我希望这能帮助别人…

        2
  •  0
  •   Andreas Grech    15 年前

    问题似乎出在 action="/test.php" 在火狐上,因为它在Chrome和IE上都能工作

    尝试将其更改为 action="test.php" 再试一次。

        3
  •  0
  •   Philippe Leybaert    15 年前

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

        4
  •  0
  •   constantine stanley    15 年前

    嗨,真是太好了,非常有帮助, 我花了大约16个小时研究所发生的事情,解决方法是更改提交按钮的名称。 谢谢

        5
  •  0
  •   trante    10 年前

    我有类似的问题,提交按钮没有“名称”,只有“ID”。

    不管怎样,这解决了我的问题:

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