Определить нажатие кнопки Enter

 
0
 
JavaScript
ava
Black | 16.12.2004, 21:41
Необходимо выполнить определенные действия, если пользователь нажмет кнопку Enter.

Привидите пример работающий и для IE и для Mozilla
Заранее спасибо (под IE я могу сделать, а вот как под Mozilly без понятий???)
Kommentare (12)
ava
sergejzr | 16.12.2004, 22:05 #
Так должно пойти :
event.keyCode==13
ava
sergejzr | 16.12.2004, 22:06 #
Тема перенесена в форум для начинающих.
ava
Sardar | 16.12.2004, 23:30 #
Что бы остановить дефолтное действие вызови event.preventDefault() в коде.

Кстати sergej.z измени translit_only.js(строка 2) ev.prevDefault() на ev.preventDefault(), а то задолбали ошибки мозиллы.
ava
Black | 16.12.2004, 23:48 #
Цитата
event.keyCode==13

это я и сам понимаю, однако в Мозилле там как-то по-особенному надо получить значение переменной, т.е. в функцию надо что-то передать, чтобы обнаруживалась event.keyCode, а просто так выдает ошибку: event is not defined.

Браузер которым смотрю страницу Mozilla Firefox 1.0RC1
ava
sergejzr | 16.12.2004, 23:49 #
А функцию можно показать? И элемент, который ловит событие...

Sardar
Да я вообще уже новый скрипт подготовил. Сам знаешь, времени нет :( Эта ошибка меня самого задолбала....
ava
Black | 17.12.2004, 00:45 #

<script>
function x(e){
e = e || window.Event || window.event;
alert(e.which);
if (e.which==13) { alert('Неужели');
else { alert('Блин'); }
return false;
} }

if (window.captureEvents){
window.captureEvents(event.KeyPress);
window.onkeydown = x;
}
else {
document.onkeydown = x;
}
}
</script>


Блин почему не работает???
ava
sergejzr | 17.12.2004, 00:48 #
Попробуй не e.which , а e.keyCode.
ava
Black | 17.12.2004, 00:53 #
нет, не помогает alert выдает сообщение alert(e.which) и так alert(e.keyCode): undefined

Мне кажется что проблема где-то здесь:


if (window.captureEvents){
window.captureEvents(event.KeyPress);
window.onkeydown = x;
}
else {
document.onkeydown = x;
}


а именно в KeyPress и onkeydown
ava
sergejzr | 17.12.2004, 00:59 #
Да нет, просто убери эту строку:


e = e || window.Event || window.event;


В функцию ведь и так правильный Ивент приходит smile
ava
Black | 17.12.2004, 01:01 #
ок! А как теперь повесить это событие, чтобы следило только за определенным полем в форме, а не за всеми нажатиями кнопок на странице???
ava
sergejzr | 17.12.2004, 01:17 #
Вот, я сделал ссылочку smile Там и код есть. С textarea smile
http://files.vingrad.ru/sergej.z/js/enter.html
später ergänzt:

<html>
<body>
<script>
function x(e)
{
code=e.keyCode?e.keyCode: window.Event.keyCode
alert(e.keyCode);
if (e.keyCode==13)
{ alert('Неужели');}
else { alert('Блин'); }
return false;
}
//document.onkeydown=x;
</script>
<textarea onkeydown="x(event);"></textarea>
</body>
</html>

ava
Aliance | 21.12.2004, 18:02 #
Вот рабочий код под W3C:

function enter(evt) {
evt = (evt) ? evt : ((window.event) ? event : null);
var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
if (charCode == 13) {
// операторы, выполняющиеся при нажатии Enter
}
}
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden