Javascript addEventListener似乎不适用于更改事件

Javascript addEventListener似乎不适用于更改事件,javascript,addeventlistener,Javascript,Addeventlistener,只是一个简单的js代码片段: HTML: 如您所见,t2的更改事件从未触发!这很简单,不需要更多的描述。在“Chrome版本56.0.2924.87(64位)”和“Firefox 52.0(32位)”中测试。有人知道吗 更新: 关于t2,应该是这样的。addEventListener: t2.addEventListener('change', function () { alert('dd'); }); 或 再次更新: 实际上,没有t1类型或更改事件。我用这个只是为了一个样本。我只想

只是一个简单的js代码片段:

HTML:

如您所见,t2的更改事件从未触发!这很简单,不需要更多的描述。在“Chrome版本56.0.2924.87(64位)”和“Firefox 52.0(32位)”中测试。有人知道吗

更新:

关于t2,应该是这样的。addEventListener:

t2.addEventListener('change', function () {
    alert('dd');
});

再次更新:

实际上,没有t1类型或更改事件。我用这个只是为了一个样本。我只想知道t2的值何时被其他函数改变。所以,我认为我们应该关注t2,而不是t1

更新三:

我相信你们以前都用过谷歌自动完成。有些片段如下所示:

autocomplete = new google.maps.places.Autocomplete(
    // .......
);
autocomplete.addListener('place_changed', fillInAddress);

function fillInAddress(){
    t2.val(......);
}
但是,问题是,我不想把触发器放在'fillInAddress'中,相反,我想在addEventListener或t2上的('change')中捕获这个已更改的事件,就像我以前写的那样

最后更新:


仍然无法理解为什么t2“更改”事件无法触发。然而,我在t1中加入了一些东西,就像@Kind user所做的一样,问题得到了解决。如果有人有任何想法,我非常感谢你能与我分享

老实说,我敢打赌,如果
t2
输入值的变化是由
t1
输入的变化引起的,OP实际上希望
警报
触发

注意:目前,这是一个
jQuery
解决方案

$('#t1')。on('keyup',function(){
$('#t2').val($(this.val().toUpperCase()).change();
});
$('#t2')。on('change',function(){
警报(“dd”);
});


谢谢,你就快到了!唯一不同的是,实际上我们没有可以使用的t1类型或更改事件。我用这个只是为了一个样本。但是是的,就像你说的,我唯一想要的是我需要知道t2的值什么时候被另一个函数改变。现在我希望它能让我撤销对另一个答案的投票。这是正确的答案@Jackzhao,只要使用
.val
更新值,它就应该按预期工作。@Jackzhao:“就像你说的,我唯一想要的是我需要知道t2的值何时被其他函数更改”,这完全改变了你的问题。您的问题没有说您想检测代码所做的更改。通常由其他代码更改,或者特别是在
t1
的事件处理程序更改它时更改?以上内容将适用于后者(尽管我建议不要通过合成事件这样做),但不适用于前者。@T.J.Crowder TJ,如果您能提供关于OP问题的纯js解决方案,我愿意立即投票支持您的答案。@T.J.Crowder您是对的,没想那么多,我的错!但我仍然被困在这里…复制品。我已经发了一封邮件。
t2.addEventListener('change', function () {
    alert('dd');
});
$("#t2").on('change propertychange input',function(){
    // do something here......
});
autocomplete = new google.maps.places.Autocomplete(
    // .......
);
autocomplete.addListener('place_changed', fillInAddress);

function fillInAddress(){
    t2.val(......);
}