Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2012, 13:29   #1
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию onkeypress и скрипт

Пытаюсь сделать по нажатию клавиши (enter) срабатывание скрипта.
Вот код:
Код HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function find(val) {
window.open('http://www.google.ru/search?q='+val+'&sitesearch=bitcom32.ru&hl=ru');
}
</script>
</head>
<body>
<FORM name="find" id="find">
<input name="inp" type="text" onkeypress="find(document.find.inp.value)"><a href="javascript:find(document.find.inp.value)" ><div id="button">ПОИСК</div></a></form>
</body>
</html>
Вопросы. Что я приписал не правильно? и как прописать обработку события для Enter?
Armatus вне форума Ответить с цитированием
Старый 27.06.2012, 20:59   #2
KPEATuBHO
Форумчанин
 
Аватар для KPEATuBHO
 
Регистрация: 03.09.2010
Сообщений: 197
По умолчанию

Если фокус установлен в поле ввода - нажатие на энтер во всех браузерах приведет к отправке формы. Понимаете на что я намекаю - вам ваш скрипт открытия надо ставить не на onkeypress поля, а на onsubmit формы. При этом после вызова скрипта, в обязательном порядке - return false; иначе форма, отправится, и страница перезагрузится - это анверное не то чего вы хотите.

P.S. <a href="javascript:find(document.find .inp.value)" ><div id="button">ПОИСК</div></a> - это очень плохо и семантически не верно, поставьте лучше submit и стилизуйте его так как хотите... И опять таки нажатие на сабмит будет приводить к вызову события при отправке формы, где мы перехватываем это событие, выполняем наш скрипт и отменяем отправку средствами return false;
KPEATuBHO вне форума Ответить с цитированием
Старый 27.06.2012, 21:39   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
<FORM name="find" id="find">
Убери это. Форма тут ни к чему, если хочешь обработку на стороне клиента.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.06.2012, 21:48   #4
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Во-первых, загруженное окно не будет работать пока ему не будет передан фокус.
Во-вторых, используем не onkeypress, а onkeyup.
Виталий Желтяков вне форума Ответить с цитированием
Старый 29.06.2012, 13:08   #5
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию

хочу обработку на стороне клиента =) Приведите примеры рабочие.
Armatus вне форума Ответить с цитированием
Старый 02.07.2012, 14:26   #6
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию

Есть у кого варианты?
Armatus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OnKeyPress ... Vova777 Общие вопросы Delphi 31 18.10.2015 12:10
onkeypress WerDinG Помощь студентам 0 18.11.2011 21:28
OnKeyPress aurora_87 Общие вопросы C/C++ 3 15.01.2010 12:06
OnKeyPress из NumLock`а Alex Cones Общие вопросы Delphi 2 23.04.2009 20:08