当我在IE8中使用JQuery的form.Submit()时,为什么会出现异常?

时间:2012-01-13 09:12:10

标签: jquery internet-explorer-8 jquery-validate

以下在FF和Chrome上完美运行。什么是IE8抱怨?

<!DOCTYPE html>
<html>
    <head>
        <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js" type="text/javascript"></script>
        <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js" type="text/javascript"></script>
    </head>
    <body>
        <form action="http://www.thisurlisfake.com" id="myForm" method="post">
            <input type="text" id="myText" class="required" />
            <input type="submit" id="submit" name="submit" />
        </form>
        <script language="javascript" type="text/javascript">
            jQuery(document).ready(function () {
                jQuery("#myForm").validate(
                {
                    submitHandler: function (form) {
                        form.Submit();
                    }
                });
            })
        </script>
    </body>
</html>

如果您未在文本框中输入任何内容,则JQuery验证将起作用并显示警告消息。

如果你在文本框中添加了一些内容,那么JQuery Validation会成功并调用我的submitHandler代码。显然我已经删除了所有额外的逻辑,但基本上最后它假设调用form.Submit()。

但是,这一行“form.Submit();”生成“错误:对象不支持此属性或方法”

3 个答案:

答案 0 :(得分:3)

我看不出它在任何浏览器中的效果如何。没有Submit方法。 Javascript是案例性的。请改用submit

答案 1 :(得分:2)

更改提交按钮的IDname

来自docs
附加说明:
    表单及其子元素不应使用与表单属性冲突的输入名称或ID,例如提交,长度或方法。名称冲突可能导致令人困惑的失败。

答案 2 :(得分:0)

我不知道你想要做什么,但要提交表格,你必须做以下事情:

$("form").on("submit", function(event){...});

$("form").submit(function(event){...});

在你验证的{...}部分,无论你需要验证什么,如果成功,你都要执行ajax请求:

$.ajax({...});