LINUX.ORG.RU

События.


0

1

Дано. Поле <input> на которое на onkeyup повешена функция проверки значения поля.

Если вводим значение руками или копипастим с клавиатуры - всё он. Но если копипастим мышом, то событие не генерится и проверка не происходит.

На какое событие можно повесить функцию проверки, чтобы устранить этот дефект?

onchange не работает.

★☆☆

Ответ на: комментарий от staseg

Угу. и на маускакего там. Маускакеготам реагирует на появление над объектом, выходом, кликом и дублекликом. Хотеть событие onPaste

r_asian ★☆☆ ()

Сделай реакцию лучше на событие onFocusOut

VirRaa ★★★ ()

Ещё как вариант, поставь setInterval, опять же на проверку поля. Как что-то в нём изменилось, так проверяй. Хотя это, конечно, не Ъ.

VirRaa ★★★ ()
Ответ на: комментарий от r_asian

А, я понял. Думал, ты пытаешься перехватить копипаст колесиком мыши. А так кроме контекстного меню можно копипастить еще из Edit->Paste, никакие mouseup-ы не помогут. Я когда-то делал, как предложил другой товарищ: отдельно следил за keyup - чтоб было видно в режиме реального времени, и вешал таймер, который каждую секунду или две дополнительно проверял. onpaste, а лучше «живой» onchange хотеть, но его нет.

staseg ★★★★★ ()
Ответ на: комментарий от xorik

Проверяй при сабмите формы...

Это само собой, но потребно, чтобы при вводе бэкграундом подкладывалась зелёная галочка, если значение верно, и красный крестик, если неверно. Иначе никакого, понимаешь юзабилити. Пользователь скопировал правильное значение, а там крестик висит. Непорядок.

r_asian ★☆☆ ()
Ответ на: комментарий от VirRaa

Да, скорее всего и буду регулярно проверять, но слишком маленькое время обновления затормозит браузер, а слишком маленькая будет бесить. Для некоторых и секунда - вечность.

r_asian ★☆☆ ()
Ответ на: комментарий от Bad_Habit

Я делал на jQuery так: keyup - для реалтайм проверки ввода и blur (focus out) для проверки, как раз, если копи паст.
Грубо говоря пользователь вводит значение, рядом меняется зеленая галочка или сообщение об ошибке, если пользователь скопипастил в поле, то когда он поле покинул проверяем.
И общую проверку всех полей при submit.

Megamozg ()
Ответ на: комментарий от Bad_Habit

зачем ловить именно так? лови клик, ставь таймер..не будет нагружать и всё ок если что. я сейчас пьяный, а так бы хорошо подумал

vene4ka ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.