我遇到了一个很奇怪的问题,就是在利用Javascript控制表单提交时,浏览器提示document.genForm.submit is not a function。genForm是表单<form>的name,并且使用同样函数的另一个表单却执行正常,查找了半天也没有发现两个有什么不同,后来在网上搜索了一番,结果找到了原因。
当表单<form>…</form>中含有name=”submit”时,提交时就会有冲突,这个错误常见于按钮上,如:
在Javascript做submit()的时候就会出现冲突,这时将name=”submit”改成别的比如login之类的就可以了,反正submit在这个情况下是个保留关键字。
实例
<form name="detailForm" action="adminSearchPerformance.do" method="post"> <input type="hidden" value="${userPerformance.userId}" name="userId"/> <input type="hidden" value="${userPerformance.userName}" name="teacherName"/> <input type="hidden" value="1" name="admin"/>
</form> <a href="javascript:document.detailForm.submit();" class="a-comm">查看详情</a></td>
解决办法
<a href="javascript:document.getAll["detailForm"].submit();" class="a-comm">查看详情</a></td>
有时候需要用javascript提交表单,很可能大家会用javascript:myForm.submit();可是在这样做的时候怎么也提交不成功,在FF中查看javascript错误Javascript Error: submit is not a function。其原因可能在于用myForm.submit()提交表单的时候,表单里面含有name="submit"的元素,在提交的时候,该对象会和submit();方法发生混淆造成该错误!