Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 13.08.2009, 12:22   #1
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,958
Репутация: 6799
По умолчанию Как правильно обработать onkeypress?

Задача: Нужно по нажатию в текстовом поле клавиши Энтер выполнить некий код, а точнее - передать серверу то что введено в текстовое поле. Передавать планирую редиректом, с формированием параметров. Сервер при получении данных уже их в БД запишет (сервер мною написаный на основе IDHTTPServer).

Вопросы:
1. Как узнать что нажата клавиша Энтер. Вот накидал слегка:
PHP код:
<script type="text/javascript">
function 
f2()
{
 if (
Event.which==13) {alert("")}
}
function 
foo()
{
 var 
el=window.event.srcElement
 
var tx=el.innerText
 el
.innerHTML="<input name='tt' value="+tx+" onkeypress='f2()'>" 
}
</script>
</head>
<body>

<table width="100%" id="test_table" width="1">
  <tr>
    <td onclick="foo()">ОПХБЕР</td>
    <td onclick="foo()">q</td>
    <td onclick="foo()">w<td>
  </tr>
</table> 
Но Алерт не вызывается, хотя написано что Event.which вернет код нажатой клавиши, значит я мог в синтаксисе как всегда ошибиться.

2. Как (можно ли) передать то что введено серверу, желательно без запроса браузера на обновление страницы. Что то слышал про технологию AJAX, но "слышал звон, да не знаю откуда он"
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 13.08.2009, 14:11   #2
Greblin
Меркантильный кю
Профессионал
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Адрес: ГЗ МГУ
Сообщений: 1,001
Репутация: 366

icq: 452325803
skype: igreblin
По умолчанию

1. which использовался в Netscape Navigator 4 В IE, Opera, Chrome надо использовать keyCode
2. Почитайте, в нете примеров полно. Хотя бы вот
__________________
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума   Ответить с цитированием
Старый 13.08.2009, 15:12   #3
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,958
Репутация: 6799
По умолчанию

Код:

function f2()
{
 if (Event.keyCode==13) {alert("")}
}

Не реагирует. Но сама f2() выполняется, это я проверил. Я вообще верно код энтера в JS написал, или там как-то по другому?
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 13.08.2009, 15:16   #4
Greblin
Меркантильный кю
Профессионал
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Адрес: ГЗ МГУ
Сообщений: 1,001
Репутация: 366

icq: 452325803
skype: igreblin
По умолчанию

event с маленькой буквы
__________________
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума   Ответить с цитированием
Старый 13.08.2009, 15:46   #5
wall66
Профессионал
 
Аватар для wall66
 
Регистрация: 04.10.2008
Адрес: Екатеринбург
Сообщений: 1,485
Репутация: 516

icq: 425890489
По умолчанию

во первых, лучше пользоваться событием onkeydown
во вторых, в ie нужно обращаться к объекту event, в остальных браузерах - к объекту, передаваемому в вашу функцию в качестве параметра
__________________
свободен...
wall66 вне форума   Ответить с цитированием
Старый 13.08.2009, 15:49   #6
Greblin
Меркантильный кю
Профессионал
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Адрес: ГЗ МГУ
Сообщений: 1,001
Репутация: 366

icq: 452325803
skype: igreblin
По умолчанию

Цитата:
Сообщение от wall66 Посмотреть сообщение
во первых, лучше пользоваться событием onkeydown
во вторых, в ie нужно обращаться к объекту event, в остальных браузерах - к объекту, передаваемому в вашу функцию в качестве параметра
Opera и Chrome проглатывают, хотя согласен, передаёшь объект и всё путём
__________________
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума   Ответить с цитированием
Старый 13.08.2009, 16:14   #7
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,958
Репутация: 6799
По умолчанию

Ок. Сенькс. Смысл уловил буду попрыгать
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обработать несколько файлов? never_mind Microsoft Office Excel 3 28.01.2009 12:57
Как в OnkeyPress отловить если в Edit есть текст позицию заменяемого символа? slips Общие вопросы Delphi 3 06.12.2008 19:12
Деление на 0. Как обработать ошибку? Bravo Общие вопросы C/C++ 7 22.10.2008 02:30
Как обработать ошибку XAOC-forever Работа с сетью в Delphi 11 24.09.2008 20:13
Как обработать исключение? XPAiN БД в Delphi 9 16.05.2008 15:09


18:28.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru