| imho.ws |
![]() |
|
|
|
# 2 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Почему нельзя просто использовать параметр кнопки accesskey?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 3 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Да, наверное если с Контролом еще, то может и нельзя... исправляюсь, вот пример как отлавливать подобные события:
Код:
<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. |
|
|
|
|
# 5 | |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Разве что обращение к форме может быть другое.... какие ошибки? Если честно, я в IE вообще не проверял
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
|
# 6 |
|
Full Member
Регистрация: 29.05.2002
Сообщения: 544
![]() ![]() ![]() ![]() ![]() |
Маленько подправил, тестил на опере 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>
|
|
|
|
|
# 7 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Да в опере-то оба работают... зато второй не работает в Мозилле...
Да, я действительно поискал, и выяснил что addEventListener() это DOM2, который, как всем известно, IE поддерживает как ....гм... не буду на приличном форуме говорить как.. ![]() Так что для совместимости придется все-таки браузер определять, правильно Sheryld говорит...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 8 |
|
::VIP::
Регистрация: 13.08.2003
Адрес: Москва
Сообщения: 1 137
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Hubbitus, Sheryld
Большое вам спасибо! Первый скрипт пашет в Mozilla (я его юзаю), но не пашет в IE. Второй полностью наоборот... А можно сделать что бы и там и там работало? Гибрид, так сказать...
__________________
Makc aka Maximus (on other boards) |
|
|
|
|
# 9 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ну если самому проверку браузера не добавить, то держи более или менее универсальный вариант:
Код:
<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. |
|
|