imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 23.06.2004, 18:08     # 1
Makc
::VIP::
 
Аватар для Makc
 
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137

Makc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc Гуру
"Горячие клавиши" для субмита

Уважаемые, как отловить нажатие Ctrl+Enter для кнопочки? Просто хочу на форуме сделать отправку сообщений по "горячей клавише"?
__________________
Makc aka Maximus (on other boards)
Makc вне форума  
Старый 24.06.2004, 00:11     # 2
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Почему нельзя просто использовать параметр кнопки accesskey?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 24.06.2004, 01:23     # 3
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Да, наверное если с Контролом еще, то может и нельзя... исправляюсь, вот пример как отлавливать подобные события:
Код:
<html>
<head>
<script>
function kb_handler(evt) {
    if (evt.which==13){
	if (evt.ctrlKey){
	alert('Событие Ctrl+Enter отловлено, дальше что-то делаем, например сейчас отправляем данные формы.');
	evt.preventDefault();
	evt.stopPropagation();
	document.myForm.submit();
	}
    }
}
</script>
</head>
<body>

<form method=post name=myForm>
<script>
document.myForm.addEventListener("keypress", kb_handler, true);
</script>

<b>Ваше имя<br> <input type=text>
<p>Ваш e-mail <input type=text>
<p>Описание чего-то<br>
<textarea></textarea>
<input type=submit value="Отправить сообщение">
</body>
</html>
Прошу сильно не ругаться, т.к. набросал его за пяток минут....
Там обработчик события на форму вешается, соответственно можешь выбрать что тебе нужно, или сузить (например на отдельное поле) или расширить (например на весь документ)...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 24.06.2004, 02:06     # 4
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
в IE не кактит(в 6.0), видимо он не поддерживает addEventListener
Sheryld вне форума  
Старый 24.06.2004, 02:20     # 5
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Sheryld:
в IE не кактит(в 6.0), видимо он не поддерживает addEventListener
Поддерживает!
Разве что обращение к форме может быть другое.... какие ошибки?
Если честно, я в IE вообще не проверял
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 24.06.2004, 02:33     # 6
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
Маленько подправил, тестил на опере 7.x и на IE 6.0, но на более старых версиях будет работать или нет - неизвестно, в любом случае надо писать сначала свою библиотеку, для определения броузера, а по нему уже поределять методы и свойства, а также возможную функциональность элемента, или вообще отказаться от оного.
А если ориентироваться на IE only, то лучше использовать Behavior Script, подробнее смотрим MSDN и MS Site.
Код:
<html>
<head>
<script>
function kb_handler(evt) 
{
    if (evt.keyCode==13)
    {
	if (evt.ctrlKey)
        {
		alert('Событие Ctrl+Enter отловлено, дальше что-то делаем, например сейчас отправляем данные формы.');
		document.myForm.submit();
	}
    }
}
</script>
</head>
<body>

<form method=post name=myForm>
<script>
document.myForm.attachEvent('onkeydown',kb_handler);
</script>

<b>Ваше имя<br> <input type=text>
<p>Ваш e-mail <input type=text>
<p>Описание чего-то<br>
<textarea></textarea>
<input type=submit value="Отправить сообщение">
</body>
</html>
Sheryld вне форума  
Старый 24.06.2004, 03:48     # 7
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Да в опере-то оба работают... зато второй не работает в Мозилле...
Да, я действительно поискал, и выяснил что addEventListener() это DOM2, который, как всем известно, IE поддерживает как ....гм... не буду на приличном форуме говорить как..
Так что для совместимости придется все-таки браузер определять, правильно Sheryld говорит...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 24.06.2004, 13:54     # 8
Makc
::VIP::
 
Аватар для Makc
 
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137

Makc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc Гуру
Hubbitus, Sheryld
Большое вам спасибо! Первый скрипт пашет в Mozilla (я его юзаю), но не пашет в IE. Второй полностью наоборот... А можно сделать что бы и там и там работало? Гибрид, так сказать...
__________________
Makc aka Maximus (on other boards)
Makc вне форума  
Старый 24.06.2004, 14:46     # 9
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Ну если самому проверку браузера не добавить, то держи более или менее универсальный вариант:
Код:
<html>
<head>
</head>
<body>

<form method=post name=myForm>
<script>

</script>

<b>Ваше имя<br> <input type=text>
<p>Ваш e-mail <input type=text>
<p>Описание чего-то<br>
<textarea></textarea>
<input type=submit value="Отправить сообщение">
</form>

<script>
//set browser vars
var ua = navigator.userAgent.toLowerCase();
isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1));
isGecko = (ua.indexOf("gecko") != -1);

    if (isIE) document.myForm.attachEvent('onkeydown',kb_handler);
    else document.myForm.addEventListener("keypress", kb_handler, true);

function kb_handler(evt) {

    if (isIE){//Если Експлореер
	if (evt.keyCode == 13){
	    if (evt.ctrlKey){
	    alert('Событие Ctrl+Enter отловлено, дальше что-то делаем, например сейчас отправляем данные формы.');
	    document.myForm.submit();
	    }
	}
    }
    else{//Нормальный браузер с поддержкой DOM2
	if (evt.which == 13){
	    if (evt.ctrlKey){
	    alert('Событие Ctrl+Enter отловлено, дальше что-то делаем, например сейчас отправляем данные формы.');
	    document.myForm.submit();
	    }
	}

    }
}
</script>
</body>
</html>
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 24.06.2004, 16:26     # 10
Makc
::VIP::
 
Аватар для Makc
 
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137

Makc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc ГуруMakc Гуру
Hubbitus, наиогромнейшее спасибо!!! Если бы мог, то еще раз добавил репутации!
__________________
Makc aka Maximus (on other boards)
Makc вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 23:44.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.