未捕获的 TypeError:document.getElementById(...).submit 不是 HTMLDocument.<anonymous> 的函数 [重复]
Posted
技术标签:
【中文标题】未捕获的 TypeError:document.getElementById(...).submit 不是 HTMLDocument.<anonymous> 的函数 [重复]【英文标题】:Uncaught TypeError: document.getElementById(...).submit is not a function at HTMLDocument.<anonymous> [duplicate] 【发布时间】:2019-12-07 04:44:00 【问题描述】:我想通过 jquery/javascript 提交我的表单,为此我使用 javascript (document.getElementById('formId').submit(); ) 但我们得到错误:
file.php:144 Uncaught TypeError: document.getElementById(...).submit is not a function at htmlDocument.<anonymous> (file.php:144) at fire (jquery.js:3048) at Object.fireWith [as resolveWith] (jquery.js:3160) at Function.ready (jquery.js:433) at HTMLDocument.completed (jquery.js:104)
我发现如果我在表单中使用 HTML 标记,则会出现错误 HTML标签喜欢:
<ul class="pager">
<li class="next" >
如果我以过度形式删除这些标签,那么它工作正常
<form action="" name="formId" id="formId" method="post" >
<fieldset class='panel ques' style='margin:5%;' id='ques_1' >
Question 1 :: what is command for changing user information??</b><br /><br />
<input type="radio" name="a" value="a" checked>
<label for="55892169d2efc"> usermod</label><br /><br />
<input type="radio" name="b" value="b">
<label for="55892169d2f05"> useradd</label><br /><br />
<input type="radio" name="c" value="c">
<label for="55892169d2f09"> useralter</label><br /><br />
<input type="radio" name="d" value="d">
<label for="55892169d2f0c"> groupmod</label><br /><br />
<ul class="pager">
<li class="next" >
<button type="text" style="float: right;" name="submit" class="btn btn-primary">
<span class="glyphicon glyphicon-lock" aria-hidden="true"></span> Finish
</button>
</li>
</ul>
</fieldset>
</form>
<script type="text/javascript">
document.getElementById('formId').submit();
</script>
【问题讨论】:
【参考方案1】:您将提交按钮命名为submit
,它覆盖了form
的submit()
方法。重命名按钮可以解决问题。
因此,作为一般的最佳实践,不要命名或提供与对象、属性或方法名称匹配的 ID。
<form action="http://example.com" name="formId" id="formId" method="post" >
<fieldset class='panel ques' style='margin:5%;' id='ques_1' >
Question 1 :: what is command for changing user information??<br><br>
<input type="radio" name="a" value="a" checked>
<label for="55892169d2efc"> usermod</label><br><br>
<input type="radio" name="b" value="b">
<label for="55892169d2f05"> useradd</label><br><br>
<input type="radio" name="c" value="c">
<label for="55892169d2f09"> useralter</label><br><br>
<input type="radio" name="d" value="d">
<label for="55892169d2f0c"> groupmod</label><br><br>
<ul class="pager">
<li class="next" >
<button type="text" style="float: right;" name="btnSubmit" class="btn btn-primary">
<span class="glyphicon glyphicon-lock" aria-hidden="true"></span> Finish
</button>
</li>
</ul>
</fieldset>
</form>
<script>
document.getElementById('formId').submit();
</script>
【讨论】:
以上是关于未捕获的 TypeError:document.getElementById(...).submit 不是 HTMLDocument.<anonymous> 的函数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
VueJS:未捕获(承诺中)TypeError:无法读取未定义的属性“推送”
未捕获的TypeError:(中间值).map不是函数[重复]
如何使用自定义错误消息捕获“TypeError:无法读取未定义的属性(读取'0')”?
未捕获(承诺)TypeError:无法读取未定义的属性“长度”