gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 12:59:31 27 4
gpt4 key购买 nike

我有一个非常广泛的模板,并且有一个表单用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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com