Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.07.2010, 14:00
Новичок на форуме
Отправить личное сообщение для Arnatuile Посмотреть профиль Найти все сообщения от Arnatuile
 
Регистрация: 21.07.2010
Сообщений: 3

ложное срабатывание 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, но все равно идет нажатие на кнопку.

Данный глюк только в опере. В мозиле все нормально работает.
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2010, 02:12
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ну мог бы в общем-то поэкспериментировать

<!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>
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2010, 10:48
Новичок на форуме
Отправить личное сообщение для Arnatuile Посмотреть профиль Найти все сообщения от Arnatuile
 
Регистрация: 21.07.2010
Сообщений: 3


не понял смысл. Для чего див и вставка 'enter<br>'?
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2010, 11:01
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

для отладки, не обращай внимания
Ответить с цитированием
  #5 (permalink)  
Старый 22.07.2010, 11:29
Новичок на форуме
Отправить личное сообщение для Arnatuile Посмотреть профиль Найти все сообщения от Arnatuile
 
Регистрация: 21.07.2010
Сообщений: 3

ничего не понимаю.
тогда зачем твой код?
ведь он почти такой же как у меня. у меня алерт выскакивает, у тебя текст печатается.

Проблема все равно остается - выполнение события кнопки.

у меня пока только одно решение видится: отлавливать события и проверять их. Но такое решение мне не нравится.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск