$('#form')。submit()有效但document.getElementById('form')。submit()不

时间:2014-01-16 21:07:52

标签: javascript jquery asp.net

在ASP.NET Web窗体页面上有任何表单,我无法使用普通的javascript提交,但使用jQuery我能够提交。

示例:

[...]
<head>
    [...]
    <script type="text/javascript">
    function submitting() { 
        alert('Submitting');
        return true;
    }
    </script>
</head>
<body>
     <form id="testform" onsubmit="return submitting();"></form>
     [...]
</body>
[...]

然后在控制台中:

> $('#testform')
[<form id=​"testform" onsubmit=​"return submitting()​;​">​</form>​]

然后按预期调用.submit()按预期工作

> $('#testform').submit()

作品!

但是使用document.getElementById:

> document.getElementById("testform")
<form id=​"testform" onsubmit=​"return submitting()​;​">​</form>​
> document.getElementById("testform").submit()
undefined

我相信document.getElementById("testform").submit()实际上会导致回发,但我不确定为什么它不会按预期提交表单。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,并找出原因/解决方案:

<input type="submit"..> id="submit" ,这是不必要的。如果您有此ID,请将其删除,然后使用

提交表单

的document.getElementById( “TESTFORM”)。提交()

答案 1 :(得分:-1)

我相信.submit()是一个jQuery方法/函数,这就是为什么它只适用于你的jQuery示例。

vanillaJS方法是.onSubmit(就像其他人提到的那样)。

现在,如果你把你的代码放在像这样的jQuery包装器中:

$(document.getElementById("testform"))

(这基本上就是jQuery的作用)

然后你可以使用.submit()之类的

$(document.getElementById("testform")).submit()

我很少使用.submit(),所以我不是百分之百,但看起来对我来说

希望这有帮助!