Программный клик на ссылке в браузере Opera

Долгое время в проекте, над которым я работал, авторизация в браузере Opera проходила как-то не так. Суть проблемы была в том, что в браузере Opera 12.10, когда я в текстовое поле вводил пароль и нажимал Enter, авторизация не происходила (по нажатию Enter должна была нажаться ссылка OK). Хотя в других браузерах все работало прекрасно: Firefox 17.0.1, IE 9 и Chrome 24. Вот упрощенный пример:
<input value="" onkeypress="enterButtonClick(event)" />
 
<a id="link" href="#" onclick="alert('hello')">ОК</a>
Сам скрипт:
<script type="text/javascript" language="JavaScript">	
	function enterButtonClick(e){
		if(e.keyCode == 13){//Клавиша Enter
			document.getElementById('link').click();			
		}
	}
</script>
Долго искал решение. Оказалось в Opera нужно предотвращать стандарстное действие клавиши Enter, т.к. она перебивала клик на ссылке! Это делается методом preventDefault объекта event.
<script type="text/javascript" language="JavaScript">	
	function enterButtonClick(e){
		if(e.keyCode == 13){//Клавиша Enter
			document.getElementById('link').click();
			e.preventDefault();//предотвратить стандартное действие клавиши
		}
	}
</script>

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.