| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Событие onchange и автоматическое сохранение |
| Автор: Экскалупатор 30.8.2011, 09:44 |
| всем привет. у меня на странице есть <input type="text" onchange="hendler()"/>. после введения пользователем каких то данных они должны отправиться на сервер, что и происходит в обработчике события. но, событие onchange происходит только после потери фокуса элементом, т.е. для того что бы событие произошло пользователю нужно кликнуть в любое место страницы. и вот тут косяк, а именно, если пользователь что то ввел и кликнул в кнопку/ссылку, то отрабатывает событие onchange, данные отправляются на сервер, но после этого не происходит обработка события клика по элементу кнопка/ссылка, т.е. пользователь к примеру должен перейти на другую страницу, но вместо этого происходит сохранение и пользователь остается там где был. как быть? при этом такая проблема наблюдается только в ie8 и как ни странно в FF6(в других версиях происходит и сохранение и переход). Кто нибудь сталкивался с таким? как это можно побороть? |
| Автор: Экскалупатор 30.8.2011, 22:57 |
| неужели никаких идей нет ни у кого? очень надо, может "костыль" какой предложите... |
| Автор: нуп 30.8.2011, 23:06 |
| keyup? |
| Автор: Экскалупатор 30.8.2011, 23:16 |
| нуп, а как получать содержимое из текстбокса что бы сохранить его один раз? т.е. как узнать что пользователь закончил ввод данных? сохраняться каждый keyup нельзя(много трафика и пр.) |
| Автор: нуп 30.8.2011, 23:23 | ||||
Понятия не имею
|
| Автор: Экскалупатор 30.8.2011, 23:45 |
| не совсем понимаю как тут поможет таймаут, если человек будет вводить текст к примеру минуту(ну там пока подумает, пока кнопки найдет нужные и пр.)) то он может нажимать кнопки и реже чем в 1,5 сек. а сохранить(отправить данные на сервер) в идеале нужно только один раз, в конце ввода, после того как пользователь ушел из input'a. мне кажется что должен быть способ узнать что было событие клика на ссылку/кнопку(см. начало топика) и заставить выполниться обработчик этого события после onchange в input. |
| Автор: нуп 31.8.2011, 00:14 | ||
Тогда на линки повесить функцию, которая будет вызывать onchange событие
|
| Автор: Экскалупатор 31.8.2011, 16:00 |
| нуп, тогда получается нужно на каждый линк писать вызов, как то не очень кошерно |