Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: APL от 19 Ноября 2008, 19:45:28

Название: отслеживание изменения текстового поля
Отправлено: APL от 19 Ноября 2008, 19:45:28
Вот писал такую фигню... нужно было отслеживать забито ли что-то в текстовое поле...

но...

onChange, onKeyPress, onClick это понятно... проблем не возникло...

Проблема возникла если делаем copy/paste мышой.... как это отследить?????

пока сделал таймером... каким событием лучше в данном случае?

в общем можно ли отследить copy/paste/cut и т.п. сделаное мышкой?

onchange не предлагать :) срабатывает только при потере фокуса, а хочется на лету...
Название: отслеживание изменения текстового поля
Отправлено: ravshaniy от 20 Ноября 2008, 00:00:05
onpaste Event
oncopy Event
oncut Event

http://msdn.microsoft.com/en-us/library/ms536955(VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms536955(VS.85).aspx)
Название: отслеживание изменения текстового поля
Отправлено: APL от 20 Ноября 2008, 00:12:15
Спасибо.. разбираться буду...
Название: отслеживание изменения текстового поля
Отправлено: APL от 25 Ноября 2008, 15:12:53
Не совсем понятно как отслеживать событие не перед удалением, а после него? oncut вызывается перед...
Название: отслеживание изменения текстового поля
Отправлено: ravshaniy от 25 Ноября 2008, 22:57:33
да такими событиями хтмл не балует. onbeforecut еще вижу, а onaftercut.
Но между тем есть onafterupdate, может сойдет?
http://msdn.microsoft.com/en-us/library/ms536790(VS.85).aspx
Название: отслеживание изменения текстового поля
Отправлено: APL от 25 Ноября 2008, 23:17:02
посмотрим... в том-то и дело, что хочу изменения отслеживать ДО потери фокуса... таймером некрасиво как-то...
Название: отслеживание изменения текстового поля
Отправлено: APL от 26 Ноября 2008, 01:15:03
Не, не пашет.... вот простенький код:










onafterupdate="check();"
onchange="check();"
oncut="check();"
onpaste="check();"  
onkeyup="check();"

 name="test" id="test" value="" />






если забить инфу, а потом мышой вырезать через меню, то все равно будет активной сабмит....
Название: отслеживание изменения текстового поля
Отправлено: ravshaniy от 27 Ноября 2008, 22:02:09
все работает, просто событие oncut - вызывается до очищения инпута, поэтому условие с пустым инпутом не срабатывает
попробуйте так:









oncut="check(\'cut\');"
onkeyup="check();"

 name="test" id="test" value="" />





Название: отслеживание изменения текстового поля
Отправлено: APL от 03 Декабря 2008, 13:04:25
ravshaniy:

неее, если мы вырезаем мышой часть забитого value, а не все, то в твоем примере поле тоже становится disabled, хотя там будет информация... иначе было бы все просто :) я б не спрашивал :)
Название: отслеживание изменения текстового поля
Отправлено: ravshaniy от 06 Декабря 2008, 11:42:13
да интересный вариант, тогда наверна на oncut можно повесить функцию которая бы вызывала функцию проверки после небольшого таймаута
Название: отслеживание изменения текстового поля
Отправлено: juvetiko от 04 Апреля 2012, 16:38:37
Тема интересная и полезная , спасибо автору .
Название: Re: отслеживание изменения текстового поля
Отправлено: proxyproxy от 22 Сентября 2019, 07:38:35
Если ни одно событие не подходит, то пробуйте на получение/потерю фокуса полем и проверку значения в поле. Например сделать доп поле невидимое для хранения ранее введенного текста, а при изменении фокуса на целевом поле - сравнение с прошлым текстом (в скрытом поле) и обновление значения скрытого поля