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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [jQuery]тонкости Event'a .change 
:(
    Опции темы
DiMoN_TD
Дата 12.9.2008, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем здрасте!
Хочу задать вопрос:
У меня ситуация такова, что мне нужно при любом изменении поля input делать перерасчет суммы (к примеру).
Т.е. у меня примерно такая ситуация:

Код

<script type="text/javascript">
$(document).ready(function(){

 $("input[@name=inpname]").click(function(){
   $("input[@name=elsename]").attr("value","somevalue");
 })

  $("input[@name=elsename]").change(function(){
    var sum = sum*1 + 10;
  })

})
</script>


Вот. не смотрите на логику кода - в ней ее нет, но примерную проблему вы понимаете, да? Т.е. функция change не реагирует на то, что у меня меняется значение в input с именем name=elsename. Возможно есть другая функция для этого, если да, то какая? Если же можно решить эту проблему при помощь .change - то скажите как! Заранее спасибо! smile

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

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



Цитата(DiMoN_TD @  12.9.2008,  23:56 Найти цитируемый пост)
Т.е. функция change не реагирует на то, что у меня меняется значение в input с именем name=elsename
А как вы это определяете?

Код

var sum = sum*1 + 10;
У вас sum будет локальной переменной, может стоит var убрать?


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
Avb
Дата 15.9.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



DiMoN_TD, 
событие change происходит когда
1. Поле получило фокус
2. Значение поля изменилось
3. Поле потеряло фокус

Естесственно, пока поле не потеряет фокус onchange вызываться не будет.

Можно использовать события клавиатуры (keypress или keyup. Для кроссбраузерности скорее всего второе. Надо затестить.). Но в таком случае ничего не произойдет, если значение изменено посредством вставки из clipboard с помощью мыши.

В общем, наиболее простым и надежным методом является поставить проверку по таймауту (ну скажем каждые 100 мс). 
В prototype.js для этого есть класс  TimedObserver
PM MAIL   Вверх
Avb
Дата 15.9.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Для jQuery что-то подобное нашел в плагине http://plugins.jquery.com/project/form-observe
Но нужно докручивать под себя
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




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


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

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