今天遇到了一个很奇怪的问题,我对一表单对象调用 submit 函数时却提示 submit() is not a function
,但是调用 reset() 却没有问题。
可能原因
当表单 <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);
本文由 ukuq 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Mar 13, 2020 at 10:14 pm