2015-01-29 2 views
0

Я потратил лучшую половину последнего часа, пытаясь выяснить, что заставило мою функцию JavaScript выполнить «дважды», поскольку я все видел все, что дублировалось в консоли разработчика.onKeyUp, вызывающий код для выполнения дважды

я, наконец, проследить его на этот кусок кода:

<textarea onkeyup="parseInput(this)"></textarea> 

Целью этого является, чтобы позволить пользователю, чтобы вставить данные в текстовое поле, то есть функция parseInput() бежать, как только они делают. проблема заключается в том, что как только они нанесут CTRL+V, функция запускается. Затем, когда они RELEASE CTRL, код снова запускается (хотя данные, которые он отправляет, являются точным дубликатом только что отправленных данных.)

Это вызывает двойную активацию моей функции. Я понимаю, что JavaScript должен иметь какой-то способ закодировать следующую логику, но я не знаю, что это такое:

Если ключи CTRL отпущены, я не запускаю следующий бит кода.

Может ли кто-нибудь указать мне правильное направление?

+0

'keypress' .......... – adeneo

+1

Как насчет' onpaste'? –

+1

Возможный дубликат http://stackoverflow.com/questions/22778854/ctrl-v-paste-triggers-jquerys-keyup-function-twice –

ответ

0

Первый аргумент вашей функции - event объект. Вы должны проверить свойство keyCode и выбрать следующую логику, основанную на выборе. https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onkeyup

+0

Первым аргументом будет объект 'event', только если он был передан, OP имеет встроенный обработчик событий. – Teemu

Смежные вопросы