2012-03-21 2 views
7

Я работаю с jquery.Событие ввода Onchange не запущено на jquery

И у меня есть ввод текста в форме, я хотел бы обработать событие изменения.

$("#my_input").change(function(){alert('123');}); 

событие срабатывает нормально, когда я редактирования поля вручную, но когда я изменить значение поля с помощью скрипта (иногда с внешним сценарием) он не работает.

есть ли решение?

и спасибо заранее.

ответ

11

Событие изменения не предназначено для обнаружения программных изменений. Вы можете инициировать событие вручную при установке значения, хотя:

$('#my_input').trigger('change'); 

ярлык:

$('#my_input').change(); 
+1

Есть ли событие, которое срабатывает при программном изменении ввода? – Youcef04

+0

@ Youcef04: Нет, JavaScript не поддерживает такой мониторинг. На некоторых других языках есть конструкции, которые разрешают такие вещи, но не в JavaScript. – jwueller

+0

большое спасибо, поэтому не нужно искать в другом месте. – Youcef04

0

Огня их вручную, используя один из следующих двух функций:

$('#my_input').trigger('change'); 
$('#my_input').change(); 
0

Вы можете использовать живого/делегата для привязки вашего события изменения

$("#my_input").live('change',function(){alert('123');}); 
0

вот код

$("input[type='text']").change(function() { 
    // check input ($(this).val()) for validity here 
}); 
Смежные вопросы