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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Событие onchange и автоматическое сохранение 
:(
    Опции темы
Экскалупатор
Дата 30.8.2011, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



всем привет. у меня на странице есть <input type="text" onchange="hendler()"/>. после введения пользователем каких то данных они должны отправиться на сервер, что и происходит в обработчике события. но, событие onchange происходит только после потери фокуса элементом, т.е. для того что бы событие произошло пользователю нужно кликнуть в любое место страницы. и вот тут косяк, а именно, если пользователь что то ввел и кликнул в кнопку/ссылку, то отрабатывает событие onchange, данные отправляются на сервер, но после этого не происходит обработка события клика по элементу кнопка/ссылка, т.е. пользователь к примеру должен перейти на другую страницу, но вместо этого происходит сохранение и пользователь остается там где был. как быть? при этом такая проблема наблюдается только в ie8 и как ни странно в FF6(в других версиях происходит и сохранение и переход). 
Кто нибудь сталкивался с таким? как это можно побороть?
PM MAIL ICQ   Вверх
Экскалупатор
Дата 30.8.2011, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



неужели никаких идей нет ни у кого? очень надо, может "костыль" какой предложите...
PM MAIL ICQ   Вверх
нуп
Дата 30.8.2011, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



keyup?
PM MAIL   Вверх
Экскалупатор
Дата 30.8.2011, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



нуп, а как получать содержимое из текстбокса что бы сохранить его один раз? т.е. как узнать что пользователь закончил ввод данных? сохраняться каждый keyup нельзя(много трафика и пр.)
PM MAIL ICQ   Вверх
нуп
Дата 30.8.2011, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



Понятия не имею  smile  В голове только один вариант : после события keypress создавать таймаут например в секунду, чтобы он вызывал вашу функцию. 
Код

function onChange() {
// получили данные, отправили
}
function myFunc() { 
    if(onChange.timeout)
         clearTimeout(onChange.timeout);
    onChange.timeout = setTimeout(onChnage, 1500); // 1.5 sec
}


Код

<input type="text" id="blabla" onkeyup="myFunc();"/>

PM MAIL   Вверх
Экскалупатор
Дата 30.8.2011, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



не совсем понимаю как тут поможет таймаут, если человек будет вводить текст к примеру минуту(ну там пока подумает, пока кнопки найдет нужные и пр.)) то он может нажимать кнопки и реже чем в 1,5 сек. а сохранить(отправить данные на сервер) в идеале нужно только один раз, в конце ввода, после того как пользователь ушел из input'a. мне кажется что должен быть способ узнать что было событие клика на ссылку/кнопку(см. начало топика) и заставить выполниться обработчик этого события после onchange в input.
PM MAIL ICQ   Вверх
нуп
Дата 31.8.2011, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



Тогда на линки повесить функцию, которая будет вызывать onchange событие
Код

document.getElementById('myinput').onchange();

PM MAIL   Вверх
Экскалупатор
Дата 31.8.2011, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



нуп, тогда получается нужно на каждый линк писать вызов, как то не очень кошерно
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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