检测是否使用JavaScript或jQuery更新字段

检测是否使用JavaScript或jQuery更新字段,javascript,jquery,Javascript,Jquery,我有一个非常广泛的模板,有一个表单可以用JavaScript或jQuery更新文本字段的值,这个函数无法找到它,我需要检测这个字段何时更新,我尝试了所有这些函数,但它无法检测它何时更新 为什么从JavaScript更新字段时未检测到它,而在我在字段外部写入并单击时更新时检测到它 重要提示:动态添加的值90000”使其成为一个特定的函数,我无法找到该函数,并尝试检测该值是否使用JavaScript更改 $(函数(){ //自动更新,奇怪的功能 setTimeout(函数(){ //值自动更新 $

我有一个非常广泛的模板,有一个表单可以用JavaScript或jQuery更新文本字段的值,这个函数无法找到它,我需要检测这个字段何时更新,我尝试了所有这些函数,但它无法检测它何时更新

为什么从JavaScript更新字段时未检测到它,而在我在字段外部写入并单击时更新时检测到它

重要提示:动态添加的值90000”使其成为一个特定的函数,我无法找到该函数,并尝试检测该值是否使用JavaScript更改

$(函数(){
//自动更新,奇怪的功能
setTimeout(函数(){
//值自动更新
$('长').val(“90.000”);
}, 2000);
/**
*检测该字段是否已更新
*/
$('input#long')。on('change',function(){
警报(“更新”);
});
$(':input')。在('change',function()上{
警报(“更新”);
});
$('input#long').change(function(){
警报(“更新”);
});
$(文档).on('change','input#long',function(){
警报(“更新”);
});  
$(文档).on('change','input',function()){
警报(“更新”);
}); 
});

使用
键控
粘贴
而不是
更改
。请参阅

$(函数(){
//自动更新,奇怪的功能
setTimeout(函数(){
//值自动更新
$('长').val(“90.000”);
}, 2000);
/**
*检测该字段是否通过按键或粘贴文本更新
*/
$(文档).on('keyup-paste','input',function(){
警报(“更新的文本字段”);
}); 
});

使用
键控
粘贴
而不是
更改
。请参阅

$(函数(){
//自动更新,奇怪的功能
setTimeout(函数(){
//值自动更新
$('长').val(“90.000”);
}, 2000);
/**
*检测该字段是否通过按键或粘贴文本更新
*/
$(文档).on('keyup-paste','input',function(){
警报(“更新的文本字段”);
}); 
});

您可以使用jquery中的
change
方法订阅事件

html

<input class="target" type="text" value="Field 1">


您可以使用jquery中的
change
方法订阅事件

html

<input class="target" type="text" value="Field 1">


JS/jQuery调用不会触发DOM事件。您可以轻松手动触发
更改
事件,如下所示:

$('#long').val('90.000').trigger('change')

样本

$(函数(){
//自动更新,奇怪的功能
setTimeout(函数(){
//值自动更新
$('#long').val(“90.000”).trigger('change');
}, 2000);
/**
*检测该字段是否已更新
*/
$('input#long')。on('change',function(){
警报(“更新”);
});
$(':input')。在('change',function()上{
警报(“更新”);
});
$('input#long').change(function(){
警报(“更新”);
});
$(文档).on('change','input#long',function(){
警报(“更新”);
});  
$(文档).on('change','input',function()){
警报(“更新”);
}); 
});

DOM事件不会由JS/jQuery调用触发。您可以轻松地手动触发
change
事件,如下所示:

$('#long').val('90.000').trigger('change')

样本

$(函数(){
//自动更新,奇怪的功能
setTimeout(函数(){
//值自动更新
$('#long').val(“90.000”).trigger('change');
}, 2000);
/**
*检测该字段是否已更新
*/
$('input#long')。on('change',function(){
警报(“更新”);
});
$(':input')。在('change',function()上{
警报(“更新”);
});
$('input#long').change(function(){
警报(“更新”);
});
$(文档).on('change','input#long',function(){
警报(“更新”);
});  
$(文档).on('change','input',function()){
警报(“更新”);
}); 
});

您是否尝试过钥匙释放时直接触发的钥匙向上触发器

$(函数(){
//自动更新,奇怪的功能
setTimeout(函数(){
//值自动更新
$('长').val(“90.000”);
}, 2000);
/**
*检测该字段是否已更新
*/
$(“#long”).keyup(函数(){
警报(“调用了.keyup()的处理程序”);
});
});

您是否尝试过钥匙释放时直接触发的钥匙向上触发器

$(函数(){
//自动更新,奇怪的功能
setTimeout(函数(){
//值自动更新
$('长').val(“90.000”);
}, 2000);
/**
*检测该字段是否已更新
*/
$(“#long”).keyup(函数(){
警报(“调用了.keyup()的处理程序”);
});
});

因此,根据您对其他答案的编辑/评论,您无法手动触发
更改

一个
MutationObserver
将是解决这个问题的好方法,除非他们不能观察输入值的变化

据我所知,您唯一的解决方法是使用
setInterval
每隔几毫秒比较一次当前值和旧值。这有点难看,一点也不理想,但确实有效。以下是一个示例:

$(函数(){
setTimeout(函数(){
$('长').val('90.000');
}, 1000);
$('#long')。on('change',function(){
警报(“更改”);
});
//存储当前值
$('long').data('oldVal',$('long').val());
//每100ms,每当新值!=旧值时触发“更改”事件
setInterval(函数(){
if($('#long').val()!=$('#long').data('oldVal')){
$('#long')。触发器('change');
$('long').data('oldVal',$('long').val());
}
}, 100);    
});

因此,根据您对其他答案的编辑/评论,您无法手动触发
更改

一个
MutationObserver
将是解决这个问题的好方法,除非他们不能观察输入值的变化

你唯一的办法