通过Javascript更改输入字段的更改

mah*_*shi 2 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');});
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用,因为其他JavaScript文件本身改变了该值.

我无法更改或添加到现有的JavaScript.我无法在输入字段中添加任何内容.

Sau*_*ogi 5

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

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

你可以这样做:

$(function() {
  $("#field").on('change', function(e) {
  	alert('hidden field changed!');
  });
  
  $("#btn").on('click', function(e) {
  	$("#field").val('hello!').trigger('change');
    console.log('Hidden Filed Value: ' + $('#field').val());
  });
  
  console.log('Hidden Filed Value: ' + $('#field').val());
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="field" type="hidden" name="name">
<button id="btn">
  Change Hidden Field Value
</button>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!