ложное срабатывание enter'а на кнопке
на форме кнопка и поле для ввода текста. Есть скрипт, который отлавливает enter у поля ввода.
если вводить текст в поле ввода и нажать ентер, то событие произойдет на кнопке! Вот сам скрипт:
function KeyDown(e){
if(!e) var e = window.event;
var keynum;
if(window.event) keynum = e.keyCode; // IE
else if(e.which) keynum = e.which; // Netscape/Firefox/Opera
if(keynum == 13){
alert("e-hay");
return false;
}
return true;
}
На кнопке почти все время висит фокус. Делал фокус на поле при нажатии enter, но все равно идет нажатие на кнопку. Данный глюк только в опере. В мозиле все нормально работает. |
ну мог бы в общем-то поэкспериментировать ;)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form>
<input id="textbox" type="text">
</form>
<div id="debug">
</div>
<script type="text/javascript">
var textbox = document.getElementById('textbox');
textbox.onkeypress = function( e ){
e = e || event;
var keyCode = e.keyCode || e.which;
if( keyCode == 13 ){
document.getElementById('debug').innerHTML += 'enter<br>';
return false;
}
}
</script>
</body>
</html>
|
не понял смысл. Для чего див и вставка 'enter<br>'? |
для отладки, не обращай внимания ;)
|
ничего не понимаю.
тогда зачем твой код? ведь он почти такой же как у меня. у меня алерт выскакивает, у тебя текст печатается. Проблема все равно остается - выполнение события кнопки. у меня пока только одно решение видится: отлавливать события и проверять их. Но такое решение мне не нравится. |
| Часовой пояс GMT +3, время: 05:57. |