一旦Javascript更改输入字段

一旦Javascript更改输入字段,javascript,jquery,Javascript,Jquery,我有一个输入字段type=“hidden”,它由javascript本身更改 当此字段更改时,我希望触发事件/函数 我试过这个: $(".product_id").on("change paste keyup input", function(event){alert('1');}); $(".product_id").blur(function(event){alert('1');}); $(".product_id").keypress(function(event){alert('1');

我有一个输入字段
type=“hidden”
,它由javascript本身更改

当此字段更改时,我希望触发事件/函数

我试过这个:

$(".product_id").on("change paste keyup input", function(event){alert('1');});
$(".product_id").blur(function(event){alert('1');});
$(".product_id").keypress(function(event){alert('1');});
但它似乎不起作用,因为值是由其他JavaScript文件本身更改的

我无法更改或添加现有JavaScript。 我无法向输入字段添加任何内容。

您可以使用jQuery的方法和事件

对隐藏元素的值的更改不会自动触发
.change()
事件。因此,一旦更改了隐藏的输入,就应该告诉jQuery使用
.trigger('change')
方法触发它

您可以这样做:

$(函数(){
$(“#字段”)。关于('change',函数(e){
警报(“隐藏字段已更改!”);
});
$(“#btn”)。在('click',函数(e){
$(“#字段”).val('hello!').trigger('change');
log('隐藏字段值:'+$('#字段').val());
});
log('隐藏字段值:'+$('#字段').val());
})

更改隐藏字段值
我们需要以编程方式触发它,如:

$('.product_id').val('abcd').triggerHandler('change');

如果你不能从源代码触发
change
事件,那就是一种黑客行为

使用
setInterval()
可能不是一个好的解决方案。但在无法从更改
隐藏的
输入值的源触发
更改
事件的情况下,这会有所帮助

$(“#输入”)[0].oninput=function(){
$(“#隐藏”).val($(this.val());//设置隐藏值
}
var oldVal=$(“#隐藏”).val();
setInterval(函数(){//侦听更改
var newVal=$(“#隐藏”).val();
if(newVal!==oldVal){
console.log(newVal);
oldVal=newVal;
}
}, 1000);


只有在值更改后才能触发事件。答案中没有给出任何指示。只有代码的答案没有什么价值。。。您应该提供解释我对此有问题..有一个选择器字段将更改引导到这个隐藏的输入字段,因此我唯一需要触发更改的是这个选择器字段,但当我使用上述方法时,它会首先触发我的更改,然后触发选择器更改,因此我最终得到错误的结果你能指定隐藏字段在哪个事件上发生更改吗?如果你能在-jsfiddle链接中给我你的代码,我可以帮你!
$('.product_id').val('abcd').triggerHandler('change');