2012-07-03 2 views
2

Можно создать дубликат:
How to detect textbox change event from javascriptDetect Change событие мгновенно

Как я могу обнаружить вставлено значение текстовое поле сразу после установки? change событие поднимается только после потери фокуса, keyPress, keyUp, keyDown и т. Д. Не может мне помочь, потому что новые значения вставляются из сканера штрих-кода (это не увеличивает эти события клавиатуры). Использовать только таймер и периодически проверять значения в текстовом поле?

+0

вы попробовать 'onchange' событие? –

+0

Это не просто, попробуйте использовать готовый скрипт, например http://whattheheadsaid.com/projects/input-special-event – biziclop

+0

Это действительно не работает! Я не могу в это поверить ... это очень интересно знать. Благодаря! –

ответ

0

Вы имеете в виду этот http://jsfiddle.net/SP69J/10/

Функция

$(document).ready(check); 
    var previousvalue=""; 
function check(){ 
var val=$("#inputcontrol").val(); 
var interval; 

interval = window.clearInterval(interval); 
    if(val!=previousvalue){ 
    alert("value changed"); 
     previousvalue=$("#inputcontrol").val(); 
    }   
interval = window.setInterval(check, 500);  
}​ 

Установите интервал в соответствии с вашими потребностями.

HTML:

<input type="text" id="inputcontrol">​ 
1

Вы можете использовать oninput событие. Он будет срабатывать всякий раз, когда ввод производится в поле.

Для получения дополнительной информации, я получить цитату из этого блога: http://whattheheadsaid.com/2010/09/effectively-detecting-user-input-in-javascript (написанный @AndyE)

Говоря о OnKeyDown и таймеры ...

Однако это еще Безразлично» т с использованием ввода, который не включает клавиатуру. Какие другие типы ввода? Как насчет действий контекстного меню; вырезать, вставить, отменить и повторить? Перетаскивание? На какое-то время были события для обработки некоторых других изменений ввода - несколько браузеров поддерживают события onpaste, oncut и oncopy, но они нестандартны, а некоторые поставщики слишком упрямы для их реализации.

Введите событие HTML 5, oninput.

Для кросс-браузерный плагин JQuery, вы посмотрите на этот (тот же автор) может: http://whattheheadsaid.com/projects/input-special-event

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