2010-09-06 89 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站點」。