| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Недопустить refresh страницы при нажатии Enter |
| Автор: Black 18.12.2004, 19:31 | ||
| Проблема вот в чем. Есть форма, в форме есть поле type=text при вводе данных в это поле, если нажать кнопку Enter, браузер отправит введенные данные на action формы. Однако, мне надо, чтобы если пользователь нажимал Enter, то нажатие кнопки перехватывалось и я возвращал false, чтобы перезагрузка страницы не происходила, т.е. как будто-бы кпопка Enter и не была нажата... Всё енто дело реализовал под IE, а вот как сделать, чтобы и Моззила не обновлял страницу, а тоже получал false в ответ на нажатие Enter??? или Моззила всегда обновляет страницу???
|
| Автор: EXTR PROGRAMMER 18.12.2004, 19:39 | ||||
Также есть еще стандартные перехватчики событий Смотри мануал по методу объекта window.captureEvents(Event.KEYPRESS); |
| Автор: Black 18.12.2004, 19:51 |
| к сожалению не все так просто в этой жизни, я то как и сделал а ничего не выходит все равно страница перезагружается, т.к. у меня в форме даже нет action то Mozilla Firefox перезагружает на ту же страницу.... может можно как-то перехватить отправку формы (каким нить событием) вообщем можно ли как-то добиться того, чтоб не было перезагрузки страницы |
| Автор: EXTR 18.12.2004, 20:48 |
| window.captureEvents(Event.KEYPRESS); и перехватывает событие, а потом ты назначаешь с помощью функции обработчик |
| Автор: Black 18.12.2004, 21:39 | ||
Вот, что я сделал (к сожалению, при нажатии Enter форма отсылается и происходит перезагрузка страницы):
Напоминаю, что речь идет о браузерах на движке Mozilla, в IE все работает OK |
| Автор: Alx 18.12.2004, 21:56 |
| а зачем слэши? и лучше не называть функуию одной буквой... а return false надо просто поставить в тело функции... |
| Автор: Black 18.12.2004, 22:02 |
| ALEXANDRO слЭши... просто из PHP кода брал забыл убрать :-) А почему одной не называть??? return false; - и в коде функции не помогает :-) все нормально только кнопка Enter выделывается |
| Автор: Alx 18.12.2004, 22:04 | ||
не знаю. так некрасиво блин, я тогда даже не знаю в чём дело... моежт на onsubmit повестить? |
| Автор: Black 18.12.2004, 22:12 | ||
| Блин уже день сижу с этой проблемой не могу решить, уже даже хочу просить пусть обновляет :-) Просто это чат (фрейм, где набираются сообщения) и не хотелось бы часто обновлять этот фрейм.
Я плохо еще разбираюсь в ЯваСкриптах, объясни как это сделать?? я так понимаю это обработчик отправки формы. |
| Автор: Alx 19.12.2004, 01:19 | ||
| да, првильн понимаешь. делаешь так -
а можешь поподробнее объяснить насчет чата? мне кажется ты не правильно поступаешь изначально! фрейм где ффод сообщения вообще не должен обновляться. Нужно ставить не сабмит, а передачу данных нульфрейму, где уже происходит запись в файл или базу... |
| Автор: EXTR PROGRAMMER 19.12.2004, 01:38 | ||
А может у тебя вообще Моззила не держит JS. Попробуй reuturn запихать как я сделал. |
| Автор: Sardar 19.12.2004, 03:44 |
| EXTR PROGRAMMER ну ты и дров наломал PHP-DIRECTOR всегда возвращай false по onSubmit, но если нужно действительно отправитьформу, например по кнопке, то перед этим поставь какой нибудь флаг. По onSubmit проверяешь флаг и допускаешь отправку. |
| Автор: Black 19.12.2004, 17:11 | ||
Помогло :-) а насчет флагов, то они мне не нужны, т.к. при нажатии Ентера или кнопки Сказать срабатывает JavaScript, который отправляет информацию через скрытый фрейм. |
| Автор: Aliance 21.12.2004, 18:26 | ||
Скрипт, работающий под W3C DOM:
|
| Автор: Sardar 21.12.2004, 20:45 |
| Aliance а ты проверил? |
| Автор: Aliance 21.12.2004, 20:55 |
| Sardar Ну во всех браузерах не имею возможности, скорее по теории даю... |