Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Недопустить refresh страницы при нажатии Enter, в текстовом поле формы 
:(
    Опции темы
Black
Дата 18.12.2004, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Проблема вот в чем.

Есть форма, в форме есть поле type=text при вводе данных в это поле, если нажать кнопку Enter, браузер отправит введенные данные на action формы.

Однако, мне надо, чтобы если пользователь нажимал Enter, то нажатие кнопки перехватывалось и я возвращал false, чтобы перезагрузка страницы не происходила, т.е. как будто-бы кпопка Enter и не была нажата...

Всё енто дело реализовал под IE, а вот как сделать, чтобы и Моззила не обновлял страницу, а тоже получал false в ответ на нажатие Enter??? или Моззила всегда обновляет страницу???

Код

<form name action=myscript.php>
<input type=text name="text" value="" onkeydown='E();'>
</form>



--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
EXTR PROGRAMMER
Дата 18.12.2004, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.12.2004

Репутация: нет
Всего: нет



Код

<script>
 function E()
{
   ///код
  return [b]false[/b];

}
</script>


Код

<input type=text name="text" value="" onkeydown='[b]return[/b] E();'>


Также есть еще стандартные перехватчики событий
Смотри мануал по методу объекта window.captureEvents(Event.KEYPRESS);

Это сообщение отредактировал(а) Aliance - 19.6.2005, 17:26
PM MAIL   Вверх
Black
Дата 18.12.2004, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



к сожалению не все так просто в этой жизни, я то как и сделал а ничего не выходит все равно страница перезагружается, т.к. у меня в форме даже нет action то Mozilla Firefox перезагружает на ту же страницу....

может можно как-то перехватить отправку формы (каким нить событием) вообщем можно ли как-то добиться того, чтоб не было перезагрузки страницы


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
EXTR
Дата 18.12.2004, 20:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











window.captureEvents(Event.KEYPRESS); и перехватывает событие, а потом ты назначаешь с помощью функции обработчик
  Вверх
Black
Дата 18.12.2004, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Вот, что я сделал (к сожалению, при нажатии Enter форма отсылается и происходит перезагрузка страницы):

Код

<script language='JavaScript1.2'>
<!--
function E(e){

               var n = navigator.appName == 'Netscape' ? e.which : e.keyCode;
               if (n == 13)
               {
                // действия
               }
                else
               {
               // действия
               }
       }
//-->
</script>

<body>
<form name=eee>
<input type=text  name=\"text\" value=\"\" onKeydown=\"E(event); return false;\">
</form>


Напоминаю, что речь идет о браузерах на движке Mozilla, в IE все работает OK


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Alx
Дата 18.12.2004, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



а зачем слэши? и лучше не называть функуию одной буквой...
а return false надо просто поставить в тело функции...


--------------------
PM MAIL WWW ICQ   Вверх
Black
Дата 18.12.2004, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



ALEXANDRO
слЭши... просто из PHP кода брал забыл убрать :-)
А почему одной не называть???

return false; - и в коде функции не помогает :-) все нормально только кнопка Enter выделывается


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Alx
Дата 18.12.2004, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Цитата(PHP @ 18.12.2004, 22:02)
А почему одной не называть???

не знаю. так некрасиво smile

блин, я тогда даже не знаю в чём дело... моежт на onsubmit повестить?


--------------------
PM MAIL WWW ICQ   Вверх
Black
Дата 18.12.2004, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Блин уже день сижу с этой проблемой не могу решить, уже даже хочу просить пусть обновляет :-)

Просто это чат (фрейм, где набираются сообщения) и не хотелось бы часто обновлять этот фрейм.

Цитата
может на onsubmit повестить?


Я плохо еще разбираюсь в ЯваСкриптах, объясни как это сделать?? я так понимаю это обработчик отправки формы.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Alx
Дата 19.12.2004, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



да, првильн понимаешь.
делаешь так -
Код

<form action="script.php" method="post" onsubmit="return false;">


а можешь поподробнее объяснить насчет чата? мне кажется ты не правильно поступаешь изначально! фрейм где ффод сообщения вообще не должен обновляться. Нужно ставить не сабмит, а передачу данных нульфрейму, где уже происходит запись в файл или базу...


--------------------
PM MAIL WWW ICQ   Вверх
EXTR PROGRAMMER
Дата 19.12.2004, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.12.2004

Репутация: нет
Всего: нет



Код
<script language='JavaScript1.2'>
<!--
function E(e){

               var n = navigator.appName == 'Netscape' ? e.which : e.keyCode;
               if (n == 13)
               {
                // действия
               }
                else
               {
               // действия
               }
return false;
       }
//-->
</script>

<body>
<form name=eee>
<input type=text  name=\"text\" value=\"\" onKeydown=\"return E(event);\">
</form>


А может у тебя вообще Моззила не держит JS. Попробуй reuturn запихать как я сделал.
PM MAIL   Вверх
Sardar
Дата 19.12.2004, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



EXTR PROGRAMMER ну ты и дров наломал smile


PHP-DIRECTOR всегда возвращай false по onSubmit, но если нужно действительно отправитьформу, например по кнопке, то перед этим поставь какой нибудь флаг. По onSubmit проверяешь флаг и допускаешь отправку.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Black
Дата 19.12.2004, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Цитата
<form action="script.php" method="post" onsubmit="return false;">

Помогло :-) а насчет флагов, то они мне не нужны, т.к. при нажатии Ентера или кнопки Сказать срабатывает JavaScript, который отправляет информацию через скрытый фрейм.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Aliance
Дата 21.12.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Скрипт, работающий под W3C DOM:
Код

function blockEnter(evt) {
   evt = (evt) ? evt : ((window.event) ? event : null);
   var charCode = (evt.charCode) ? evt.charCode :
       ((evt.which) ? evt.which : evt.keyCode);
   if (charCode == 13) {
       return false;
   } else {
       return true;
   }
}
...
<input type="text" name="search" size="40" onkeydown="return blockEnter(event)" />

PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 21.12.2004, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Aliance а ты проверил? smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 21.12.2004, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Sardar
Ну во всех браузерах не имею возможности, скорее по теории даю...
PM MAIL WWW ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.