2010-09-06 11 views
5

Aşağıdakiler Firefox ve Chrome'da düzgün çalışır, ancak IE 8, bağlantı bağlantısı tıklatıldığında submit() yöntemini çağırmaz.anchor etiketindeki onclick olayı IE'de çalışmıyor

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

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

</script> 
</head> 
+0

onclick = "javascript: submit();" öğesini denediniz mi? ? – Neutralizer

+1

@Umair: 'onclick' veya benzeri olay işleyicisi özniteliklerinde' javascript: 'önekine gerek yoktur. Bu href değil. –

+0

bir keresinde benim için çalıştığı zaman, bu yüzden – Neutralizer

cevap

7

biraz daha bağlam sağlamak Can şu şekildedir:

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

yöntemi göndermek aynı sayfada tanımlanır? submit işlevinin nerede ve nasıl tanımlandığı gibi? Sadece yukarıdakilerle birlikte çalışmalıdır - aşağıdakileri içermelidir: -

Varsayılan eylemi iptal etmek için muhtemelen orada da return false; olmasını istiyorsunuz. Örn .:

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

Bu varsayılan eylem submit hemen sonra oluyor ve onunla engel oluyor olabilir.

Düzenle: Yalnızca uyuyor ve kıkırdayarak, submit işleviniz için farklı bir ad kullanmayı deneyin. IE ad alanı konularına sahiptir. Eğer örneğin, "Gönder" olarak ayarlanmış id veya name özniteliği ile bir şey varsa, o

+0

"Return false;" i eklemeyi denedim etkisi olmadan. IE hata ayıklayıcı onclick koduna yapılan çağrıyı gösterir, ancak submit() yöntemini girmez. – Mark

+0

@Mark: Hata ayıklayıcısının 'onclick' kodunu girerek ancak 'submit' yöntemine girmediğini gösteren ne demek istediğini bilmiyorum. Atılmış bir istisna var mı? Değilse, işlevi "girmeyecek" gibi ne olur? –

+0

T.J. için teşekkür ederiz. Gerçekten garip. IE 8 hata ayıklayıcısını "hepsini kırmak" için ayarlıyorum. "Oturum Aç" bağlantısını tıklar tıklamaz hata ayıklayıcı açılır ve onclick = "submit();" çapada. Vurgulamanın, yürütülecek bir sonraki talimatı belirtmek olduğunu farz ediyorum. Güvende olmak için, gönderme yönteminin içinde bir kesme noktası belirledim. Bu noktadan debugger menüsündeki "Step Into" veya "Step Over" ı tıklıyorum. Her ikisi de void (0) yöntemini vurgulamanın aynı etkisine sahiptir. Nedense IE, submit() işlevini yürütmeyecektir. Bir hata belirtisi görmüyorum. – Mark

0

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

veya

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

kullanmayı deneyin ... bir sorun olabilir Eğer javascript işlevine değer girmeniz gerekir, çift tırnak yerine tek tırnak kullanıldığından emin olun. Örneğin

: Bu sitede uyumluluk modu kullanarak IE 11 kaynaklandığını benim için daha yakın zamanda bu soruna rastlamak Diğerleri için

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

. Aynı alanda olduğumu gördü, sitenin bir intranet sitesi olduğunu varsaydı ve otomatik olarak Javascript'in bazılarını bozan uyumluluk moduna geçti (ve diğer bazı beklenmedik görüntü sorunlarına neden oldu).

Bu 'özelliği' ayarını tıklayıp ayarları "Uyumluluk Görünümü Ayarları" nı tıklatarak kapatabilirsiniz. "Uyumluluk Görünümü'nde intranet sitelerini görüntüle" olarak adlandırılan bir onay kutusu var.

İlgili konular