Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Подскажите событие любого изменения поля
Покинул форум
Сообщений всего: 291
Дата рег-ции: Авг. 2010
Помог: 0 раз(а)
Есть ли в jquery событие, которое обрабатывает любое изменение поля?
Например сейчас приходится обрабатывать по отдельности нажатия клавиш и изменение поля, вот так:
Делаю я так потому, что пользователь может заполнить поле без нажатия на клавиши клавиатуры
EuGen
Отправлено: 16 Октября, 2012 - 13:44:05
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
javascript-событие oninput
jQuery этого еще не умеет (форум), но и в js так смогут далеко не все браузеры. К примеру, IE только с 9-й версии, если не ошибаюсь.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
armancho7777777
Отправлено: 16 Октября, 2012 - 13:55:15
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Это все же не прямая поддержка (если почитать форум, это будет видно). Правда, мои данные могут уже быть устаревшими - не так давно было обновление jQuery - вполне могла появиться поддержка данного события.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
armancho7777777
Отправлено: 16 Октября, 2012 - 13:58:44
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Это по-моему не то же самое, что $('#name').oninput - требуемый эффект достигается за счет отслеживания конкретного свойства.
11 месяцев назад был как раз jQuery 1.7 - в приведенной ветке ведется их форума подобное обсуждение.
Но, мне кажется, спор здесь неуместен. Я не утверждал, что в jQuery это не реализовать, а лишь указал на отсутствие прямой поддержки. Сейчас нужно бы по-хорошему смотреть спецификации 1.8 - чтобы увидеть, как дела обстоят в актуальной версии.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
armancho7777777
Отправлено: 16 Октября, 2012 - 14:03:10
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
... не верен для jQ. (Добавление)
Для делегирования событий для вновь добавленных элементов придётся в любом случае использовать метод on
EuGen
Отправлено: 16 Октября, 2012 - 14:12:46
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
armancho7777777 пишет:
А это, по вашему, сработает ?
Подозреваю, Вы поняли мою мысль. Не понимаю цели этого сарказма. Привязка к 'on' здесь не ключевая. И так ясно, что в jQuery синтаксис отличается.
Упрощенно: "Доступные краски 'синий,желтый,красный' не позволяют нам выкрасить объект сразу в зеленый цвет. Но мы сможем реализовать это, смешав синюю и желтую краски. Если мы добавим получившийся цвет в палитру, то далее сможем напрямую реализовать требуемое действие".
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
armancho7777777
Отправлено: 16 Октября, 2012 - 14:19:17
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
EuGen, хотя да, Вы правы, если бы была реализована поддержка обсуждаемого нами события,
то оба эти события, - oninput и onpropertychange были бы объеденены в одно, - input
armancho7777777, спасибо, отлично работает. Во всех браузерах конечно не тестировал, но для моих задач вполне качественное решение. (Добавление) EuGen, ну а javascript-событие oninput не подойдет, слишком громоздко и не удобно в моем случае
armancho7777777
Отправлено: 16 Октября, 2012 - 14:26:59
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Rooner пишет:
Во всех браузерах конечно не тестировал
Работает везде. (Добавление)
Rooner пишет:
ну а javascript-событие oninput не подойдет
Будет ещё громоздче...
Отдельно надо реализовать это дело для всех браузеров кроме IE ниже 9ой версии, и отдельно для оставшихся:
Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2012
Помог: 0 раз(а)
А нельзя ли просто попробавть одной keyup? Вроде же все изменения в input проводятся только с помощью клавиатуры.
EuGen
Отправлено: 16 Октября, 2012 - 16:41:46
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Нет. Этого недостаточно. Поменять значение можно многими способами. Например, перетащить выделенный текст в поле или вставить содержимое буфера обмена через контекстное меню.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
SAD
Отправлено: 16 Октября, 2012 - 18:01:43
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Помог: 75 раз(а)
jquery.textchange плагин
tuareg
Отправлено: 16 Октября, 2012 - 21:07:55
Участник
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
armancho7777777 Не все так просто. oninput не корректно работает в IE 9 не срабатывает например при нажатии на bacespace.
P.S И кстати у Евгена по ссылке это указано, плюс еще косяки с Сафари
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.