Событие onclick в теге привязки не работает в IE - PullRequest
6 голосов
/ 06 сентября 2010

Следующее прекрасно работает в Firefox и Chrome, но IE 8 не будет вызывать метод submit () при нажатии на ссылку привязки.

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

Метод submit определен на той же странице следующим образом:

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

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

</script>
</head>

Ответы [ 4 ]

7 голосов
/ 06 сентября 2010

Можете ли вы предоставить немного больше контекста? Например, где и как определяется функция submit? С вышеупомянутым, это должно работать - кроме:

Возможно, вы также захотите ввести return false;, чтобы отменить действие по умолчанию. E.g.:

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

Возможно, действие по умолчанию происходит сразу после submit и мешает ему.

Редактировать : Просто для припадок и хихиканья, попробуйте использовать другое имя для вашей функции submit. IE имеет проблемы с пространством имен. Если у вас есть что-нибудь с атрибутом id или name, например, для "submit", это может быть проблемой ...

2 голосов
/ 18 января 2018

Для других, кто сталкивался с этой проблемой совсем недавно, для меня это было связано с тем, что IE 11 использовал режим совместимости на сайте.Он увидел, что я нахожусь в том же домене, предположил, что сайт был сайтом интрасети и автоматически переключился в режим совместимости, который нарушил некоторые функции Javascript (и вызвал некоторые другие непредвиденные проблемы с отображением).функцию ", нажав на кнопку настройки и выбрав" Просмотр настроек совместимости ".Установлен флажок «Отображать сайты интрасети в представлении совместимости».

0 голосов
/ 22 декабря 2013

Если вам нужно ввести значение в функцию javascript, убедитесь, что вместо одинарных кавычек используется одинарная кавычка.

Например:

<a href="#" onclick="your_function('input');">Sign In</a>
0 голосов
/ 06 сентября 2010

Попробуйте использовать

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

или

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