我遇到了一个奇怪的问题,我已经将这个Web应用程序运行了几年,并且只有人们开始使用IE9才会出现以下错误。一直在IE6,7和& 8。
'submit'未定义
使用的代码是:
<a name="SaveButton" id="SaveButton" onclick="javascript:document.getElementById('action').value='validate'; submit();" href="#" >Save</a>
非常感谢任何建议或帮助。
更新: 当我将其更改为此时,它似乎可以在IE9中找到。
<a name="SaveButton" id="SaveButton" onclick="javascript:document.getElementById('action').value='validate'; formname.submit();" href="#" >Save</a>
* formname是正在提交的表单的名称。
答案 0 :(得分:0)
JavaScript中的submit函数对表单元素有效。因此,此代码无效,并且只能以某种方式在较旧的Internet Explorer中运行。
对于按钮或输入,正确的语法为this.form.submit()
答案 1 :(得分:0)
问题的原因是由于IE9不喜欢来自A HREF标记的submit()函数调用,它应该真正用在INPUT或BUTTON标记中。
由于无法修改大部分代码库而导致此问题的方法是在提交函数调用之前添加表单名称,如下所示:
formname.submit();
最终,工作代码:
<a name="SaveButton" id="SaveButton" onclick="javascript:document.getElementById('action').value='validate'; formname.submit();" href="#" >Save</a>
onclick函数现在可用于以前的所有IE版本和IE9。