2010-09-06 87 views
5

以下在Fi​​refox和Chrome中运行正常,但IE8在锚点链接单击时不会调用submit()方法。onclick锚定标记中的事件不在IE中工作

<a href="javascript:void(0);" onclick="submit();">Sign In</a> 

的提交方法在同一页上定义如下:

<head> 
<script type="text/javascript"> 

function submit() 
{ 
// other code            
document.forms[0].submit(); 
} 

</script> 
</head> 
+0

你试过onclick =“javascript:submit();” ? – Neutralizer 2010-09-06 19:00:17

+1

@Umair:onclick或类似的事件处理程序属性上不需要'javascript:'前缀。这不是'href'。 – 2010-09-06 19:01:59

+0

一旦它为我工作,所以我想这是 – Neutralizer 2010-09-06 19:04:23

回答

7

你能提供更有点背景?比如在哪里以及如何定义submit函数?只有以上,它应该工作 - 除了:

你可能也想在return false;在那里虽然,取消默认动作。例如: -

<a href="javascript:void(0);" onclick="submit();return false;">Sign In</a> 

这可能是默认的动作是submit后立即发生,干扰它。

编辑:只是适合和咯咯,尝试使用不同的名称为您的submit函数。 IE有命名空间问题。如果您有与idname属性设置为“提交”,比如什么,这可能是一个问题......

+0

我试着添加“return false;”没有效果。 IE调试器显示对onclick代码的调用,但不会输入submit()方法。 – Mark 2010-09-06 19:15:33

+0

@Mark:我不确定我是否知道调试器显示它进入'onclick'代码的意思,但没有进入'submit'方法。有抛出异常吗?如果没有,会发生什么以至于“不会”进入该功能? – 2010-09-06 19:45:22

+0

感谢您回复T.J.这真的很奇怪。我将IE 8调试器设置为“全部中断”。只要我点击“登录”链接,调试器就会中断并突出显示onclick =“submit();”在主播中。我假定突出显示是指示要执行的下一条指令。为了安全起见,我还在提交方法中设置了断点。从这一点上,我单击调试器菜单上的“Step Into”或“Step Over”。两者都具有突出显示void(0)方法的相同效果。出于某种原因,IE不会执行submit()函数。我没有看到任何错误的迹象。 – Mark 2010-09-06 19:56:11

0

尝试使用

<a onclick="submit();">Sign In</a> 

<a href="javascript:submit();">Sign In</a> 
0

如果您需要将值输入到javascript函数,请确保使用单引号而不是双引号。

例如:

<a href="#" onclick="your_function('input');">Sign In</a> 
1

对于其他人谁也碰到过这样的问题,最近,对我来说,在网站上使用兼容模式是由于IE 11。它看到我在同一个域中,假设该网站是一个Intranet站点,并自动切换到兼容模式,该模式破坏了一些Javascript(并导致了一些其他意外的显示问题)。

您可以通过单击设置齿轮并选择“兼容性视图设置”来关闭此“功能”。有一个勾选框被设置为“在兼容性视图中显示Intranet站点”。