js 表单错误:form.submit() is not a function

in 三言两语 with 0 comment

今天遇到了一个很奇怪的问题,我对一表单对象调用 submit 函数时却提示 submit() is not a function ,但是调用 reset() 却没有问题。

sdsdadadad.png

可能原因

当表单 <form>…</form> 中含有 name="submit" 时,提交时就会有冲突,也有人说是因为 type="submit" 或者 id="submit" 也会出现类似的情况。(reset 可能也会出现类似的情况,有兴趣的可以自己试一试,我就不折腾了)

解决方法

温和派

不用 submit 就行了,用一下其他的字符串可以避免这个问题

强硬派

就用 submit,然后使用 call 曲线救国

例如:

var form = document.querySelector('form#comment-form');
document.createElement('form').__proto__.submit.call(form);
上一篇: 解决 instantclick 与网站统计工具的矛盾问题
下一篇: 如何为网站添加暗黑模式(dark mode)
Responses