Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2008, 17:24
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

Paste
Доброго Времени!
Столкнулся с некой проблемой при paste value in <input>
повесил обработчик в IE на onpaste и в FF на oninput.
Вопрос - как узнать что имеенно было вставленно в input ?
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2008, 16:39
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

Так можно или нельзя ? :rolleyes:
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2008, 18:55
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

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

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

Последний раз редактировалось Андрей Параничев, 06.08.2008 в 19:00.
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2008, 19:10
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

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

Если бы я решал такую задачу, я бы скорее всего не стал бы использовать onPaste, а повесил бы на событие onChange функцию, которая бы запоминала ввод и проверяла длинну, и если длинна ввода больше 1 символа - значит это было скопировано и вставлено, а не ввод с клавиатуры.
onchange событие срабатывает тока после того как теряешь focus у элемента.
onpaste работает только в IE
oninput только в FF
мне необходимо посмотреть какие данные вставляются, и если они валидны то разрешить, если нет то запретить
при onpaste и oninput ctrl.value менятся после перехвата этих events, было прикольно просто отловить когда value уже изменилось и проверить на валидность, и после сделать откат
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2008, 19:36
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

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

И вам всё-равно придется отслеживать изменения в длинне текста в input, потому что
напрямую доступ к буферу обмена получить не получится.
Ответить с цитированием
  #6 (permalink)  
Старый 06.08.2008, 19:46
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

Спасибо - я знаю теперь куда копать
вопрос снят с производста )))
Ответить с цитированием
  #7 (permalink)  
Старый 09.05.2009, 22:09
Woland
 
Сообщений: n/a

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

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск