【发布时间】:2018-12-12 07:44:33
【问题描述】:
我有一个非常广泛的模板,并且有一个表单用 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">
【问题讨论】:
-
$('#long').val('90.000').trigger('change')应该这样做。如果通过 JS 更改值,则不会触发 DOM 事件。 -
听起来你想要
keyup事件而不是change。 -
问题是这个值 90,000 是在你点击一个按钮时发出 AJAX 请求后自动添加的,我找不到那个函数或动作来归档那个触发器,这是一个非常广泛而复杂的Wordpress模板,如果这个值发生变化,我更容易尝试通过Javascript检测。
-
@Learningandsharing 您是否尝试过
.trigger('change')方法?让我将其发布为答案。
标签: javascript jquery