ложное срабатывание 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, время: 06:04. |