在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()
实际上会导致回发,但我不确定为什么它不会按预期提交表单。
有什么想法吗?
答案 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(),所以我不是百分之百,但看起来对我来说
希望这有帮助!