Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Paste (https://javascript.ru/forum/misc/1514-paste.html)

Виталий 05.08.2008 17:24

Paste
 
Доброго Времени!
Столкнулся с некой проблемой при paste value in <input>
повесил обработчик в IE на onpaste и в FF на oninput.
Вопрос - как узнать что имеенно было вставленно в input ?

Виталий 06.08.2008 16:39

Так можно или нельзя ? :rolleyes:

Андрей Параничев 06.08.2008 18:55

Странно, у меня onpaste работает в firefox, но вызывается до вставки текста. А oninput у меня не работает вообще. В тоже время в интернете пишут, что onpaste не работает в firefox. Что-то я запутался.

Если бы я решал такую задачу, я бы скорее всего не стал бы использовать onPaste, а повесил бы на событие onChange функцию, которая бы запоминала ввод и проверяла длинну, и если длинна ввода больше 1 символа - значит это было скопировано и вставлено, а не ввод с клавиатуры.

Виталий 06.08.2008 19:10

Цитата:

Сообщение от Андрей Параничев (Сообщение 4242)
Странно, у меня onpaste работает в firefox, но вызывается до вставки текста. А oninput у меня не работает вообще. В тоже время в интернете пишут, что onpaste не работает в firefox. Что-то я запутался.

Если бы я решал такую задачу, я бы скорее всего не стал бы использовать onPaste, а повесил бы на событие onChange функцию, которая бы запоминала ввод и проверяла длинну, и если длинна ввода больше 1 символа - значит это было скопировано и вставлено, а не ввод с клавиатуры.

onchange событие срабатывает тока после того как теряешь focus у элемента.
onpaste работает только в IE
oninput только в FF
мне необходимо посмотреть какие данные вставляются, и если они валидны то разрешить, если нет то запретить
при onpaste и oninput ctrl.value менятся после перехвата этих events, было прикольно просто отловить когда value уже изменилось и проверить на валидность, и после сделать откат

Андрей Параничев 06.08.2008 19:36

Виталий,
Да, извиняюсь, перепутал. Просто щас другим голова забита.
Вот статья по теме: http://www.thefutureoftheweb.com/blog/onafterpaste

И вам всё-равно придется отслеживать изменения в длинне текста в input, потому что
напрямую доступ к буферу обмена получить не получится.

Виталий 06.08.2008 19:46

Спасибо - я знаю теперь куда копать :)
вопрос снят с производста )))

Woland 09.05.2009 22:09

oninput, onpaste, setTimeout
 
Я сделал так:

Это для FF:
oninput="код_проверки_данных;"

Это для IE:
onpaste="setTimeout('код_проверки_да ных;',100);"


Часовой пояс GMT +3, время: 01:48.