javascript - jquery 未检测到 Ajax 输入值更改

标签 javascript jquery ajax wordpress gravity-forms-plugin

我有一个带有 Gravity Forms 表单的网站(也使用 GF Populate Anything 附加插件),该网站使用 ajax 动态加载数据。我试图向其中一个输入表单添加一个非常简单的 javascript 函数,但是当输入值动态更改时,jquery 函数不会检测到任何更改。当我手动输入更改时该功能有效,但在动态更改时则无效。这是我的 javscript 函数:

jQuery( document ).ready(function($) {

    $(document).on('change', '#input_3_17', function() {

        alert(  $("#input_3_17").val() );

        // my simple function here

    });

});

我无权访问控制ajax更改的代码——这是由另一个插件( https://gravitywiz.com/documentation/gravity-forms-populate-anything/ )完成的。有什么方法可以让 jquery 检测我自己的代码中的此更改吗?

如果我手动更改输入数据,或者如果我使用 .val() 设置值,则在页面加载时会触发上面代码中的警报。

这是页面加载时 html 的样子:

<input name="input_17" id="input_3_17" type="text" value="" class="medium" aria-invalid="false" disabled="">

这是输入 html 在值更改后的样子:

<input name="input_17" id="input_3_17" type="text" value="6,160.00" class="medium" aria-invalid="false">

如果我输入

$("#input_3_17").val(); 

进入开发者工具控制台,它输出当前值——所以我知道 dom 正在发生变化,但我似乎无法访问它。我有什么选择?这可能吗?

更新:在直接联系我正在使用的自定义重力形式附加组件 GF Populate Anything 的插件作者后,他们提供了所需的自定义事件。请参阅下面的答案。

最佳答案

因此,我联系了 Gravity Perks 附加插件 GF Populate Anything 的插件开发人员,这里的回复非常有效:

GP Populate Anything 使用 AJAX 更新字段后,将启动以下事件:

$(document).trigger('gppa_updated_batch_fields', this.formId);

您应该能够像这样 Hook 该事件:

$(document).on('gppa_updated_batch_fields', function(event, form_id){
   console.log(form_id);
   $('#input_' + form_id + '_' + input_id).css('background', 'red');
});

关于javascript - jquery 未检测到 Ajax 输入值更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919505/

相关文章:

javascript - 仅在登录时显示本地存储中的对象

javascript - jQuery 不在 IE 浏览器中同时使用 jquery-ui-1.10.3.custom.js 和 jquery-ui-1.9.2.custom.js

javascript - jQuery 不附加标题

javascript - 使用 AJAX 自动更新 Symfony5 表单多选(选择列表)数据

javascript - 区分 JavaScript 和 HTML

javascript - 如何从 ng-include AngularJs 中指定的 url 检索查询字符串参数

javascript - 选择选项,然后针对所选选项进行 Ajax/PHP 刷新

javascript - 列表项上的悬停背景颜色逐渐变化

javascript - 在没有文本对齐中心的情况下将动画居中对齐

php - 使用 ajax 停止 PHP