如何检测动态变化的值

时间:2013-06-27 11:17:47

标签: javascript jquery

我正在修改一个项目,该项目使用JavaScript动态填充文本框值,并对其他文本框的更改进行计算,但我不想更改原始JavaScript文件。

如何检测原始JavaScript何时更改了文本框值,我需要检测何时更改值,然后触发我自己的函数。

如果这更容易,我愿意使用jquery。

尝试:

   $("#total_amt").on("change", function() {
        alert("Handler for .change() called.");
    });

但这仅在我手动更改total_amt的值时才有效,而不是在动态更改时。

2 个答案:

答案 0 :(得分:2)

你做不到。最好的解决方案是在更改值时引发自己的事件并自行挂钩。像这样:

// after changing the value in code:
$('#total_amt').val(newValue).trigger('dynamicChange');

// event hook
$("#total_amt").on("change dynamicChange", function() {
    alert("Handler for .change() called.");
});

答案 1 :(得分:0)

试试这个:

 $("#total_amt").on("input", function() {
     alert("Handler for .change() called.");
 });

这是HTML5的东西虽然不适用于现代浏览器,但对于其他浏览器

var lastValue = '';
$("#total_amt").on('change keyup paste', function() {
    if ($(this).val() != lastValue) {
        lastValue = $(this).val();
        calert("Handler for .change() called.");
    }
});