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

标签 javascript jquery

我有一个非常广泛的模板,并且有一个表单用JavaScript或jQuery更新文本字段的值,这个函数一直无法找到它,我需要检测这个字段何时更新,我已尝试使用所有这些功能,但它没有检测到更新时间。

为什么从 JavaScript 更新字段时未检测到,但在字段外书写并单击时更新时检测到?

重要:动态添加的值“90,000”使其成为一个特定的函数,我一直无法找到该函数,并且是尝试检测该值是否随JavaScript改变。

$(function(){

// Automatic update, strange function
setTimeout(function(){
  // Value updated automatically
  $('#long').val("90.000");
}, 2000);

/**
 * Detect if that field is updated
 */
$('input#long').on('change', function(){
  alert("Updated");
});

$(':input').on('change', function(){
  alert("Updated");
});

$('input#long').change(function(){
  alert("Updated");
});

$(document).on('change', 'input#long', function(){
  alert("Updated");
});  

$(document).on('change', 'input', function(){
  alert("Updated");
}); 

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="long">

最佳答案

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

MutationObserver 是解决这个问题的好方法,只不过它们无法观察输入值的变化,as explained here .

据我所知,您唯一的出路是使用 setInterval 每隔几毫秒将当前值与旧值进行比较。有点丑陋,根本不是最佳选择,但可以完成工作。这是一个示例:

$(function() {
  setTimeout(function() {
    $('#long').val('90.000');
  }, 1000);
  
  $('#long').on('change', function() {
    alert('changed');
  });
  
  // Store the current value
  $('#long').data('oldVal', $('#long').val());
  
  // Every 100ms, trigger `change` event whenever new value != old
  setInterval(function() {
    if ($('#long').val() !== $('#long').data('oldVal')) {
      $('#long').trigger('change');
      $('#long').data('oldVal', $('#long').val());
    }
  }, 100);    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="long">

关于javascript - 检测字段是否使用 JavaScript 或 jQuery 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52120455/

相关文章:

javascript - 在 redux-orm 模式实例上使用 reducer 方法

javascript - 范围从 Promise 内部发生变化

php - 在单个页面上使用 PHP、AJAX 和 jQuery 的多个上传表单不起作用

javascript - 在 jQuery 中调用方法

javascript - jQuery 根据另一个下拉列表的值填充下拉列表

javascript - Ajax 和 PHP,发布请求不起作用

javascript - jQuery 使用 Regex 在文本中查找链接,但如果链接在引号中则排除

javascript - 在 Javascript 的 textNode 中添加 html

javascript - 解析从 Controller 收到的 Json

jquery - 在循环中调用 setTimeout 函数不起作用