Javascript jquery未检测到Ajax输入值更改

Javascript jquery未检测到Ajax输入值更改,javascript,jquery,ajax,wordpress,gravity-forms-plugin,Javascript,Jquery,Ajax,Wordpress,Gravity Forms Plugin,我有一个带有Gravity表单(也使用GF Populate Anything插件)的站点,该站点使用ajax动态加载数据。我试图向其中一个输入表单添加一个非常简单的javascript函数,但是当输入值动态变化时,jquery函数不会检测到任何变化。当我手动输入更改时,该函数起作用,但当它被动态更改时,该函数不起作用。下面是我的脚本函数: jQuery( document ).ready(function($) { $(document).on('change', '#input_3

我有一个带有Gravity表单(也使用GF Populate Anything插件)的站点,该站点使用ajax动态加载数据。我试图向其中一个输入表单添加一个非常简单的javascript函数,但是当输入值动态变化时,jquery函数不会检测到任何变化。当我手动输入更改时,该函数起作用,但当它被动态更改时,该函数不起作用。下面是我的脚本函数:

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

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

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

        // my simple function here

    });

});

我无法访问控制ajax更改的代码——这是由另一个插件()完成的。有没有办法让jquery在我自己的代码中检测到这种变化

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

以下是页面加载时html的外观:

<input name="input_17" id="input_3_17" type="text" value="" class="medium" aria-invalid="false" disabled="">
在开发人员工具控制台中,它输出当前值——因此我知道dom正在发生更改,但我似乎无法访问它。我有什么选择?这可能吗


更新:在直接联系我正在使用的自定义重力表单插件的插件作者之后,GF填充任何内容,他们提供了所需的自定义事件。请参见下面的答案。

如果我理解正确,您可以使用此选项。
此脚本每次都会激发。更多信息请访问GF文档


如果我理解正确,您可以使用此功能。
此脚本每次都会激发。更多信息请访问GF文档


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

GP使用AJAX填充任何更新字段后,将启动以下事件:

$(document).trigger('gppa_updated_batch_fields', this.formId);
您应该能够像这样连接到该事件:

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

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

GP使用AJAX填充任何更新字段后,将启动以下事件:

$(document).trigger('gppa_updated_batch_fields', this.formId);
您应该能够像这样连接到该事件:

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

换句话说,您需要gravity表单来监视对输入的更改,从而导致gravity表单提交更改。是吗?或者,你是在问如何检测插件对输入所做的更改?不是手动更改吗?因为。。。这不是更改事件的目的。是的,我需要检测插件对输入所做的更改(它正在使用ajax进行更改)。我不需要更改输入值——我的javascript函数也不会更改提交的数据。重复文章中提供的解决方案不会检测到值中的任何动态更改。它检测代码中设置的值(input.value='foo';),但不检测任何动态更新的值。对于
.change()
说:注意:使用JavaScript(例如使用.val()更改输入元素的值)不会触发事件。因此,处理程序永远不会检测到来自AJAX和JS的更改。你需要听听别的。提到,可能会有帮助吗?换句话说,您需要gravity表单来监视输入的更改,从而导致gravity表单提交更改。是吗?或者,你是在问如何检测插件对输入所做的更改?不是手动更改吗?因为。。。这不是更改事件的目的。是的,我需要检测插件对输入所做的更改(它正在使用ajax进行更改)。我不需要更改输入值——我的javascript函数也不会更改提交的数据。重复文章中提供的解决方案不会检测到值中的任何动态更改。它检测代码中设置的值(input.value='foo';),但不检测任何动态更新的值。对于
.change()
说:注意:使用JavaScript(例如使用.val()更改输入元素的值)不会触发事件。因此,处理程序永远不会检测到来自AJAX和JS的更改。你需要听听别的。提到,可能有帮助吗?这对我的表单不起作用,可能是因为我还使用了自定义重力表单插件。我使用了由开发人员创建的自定义事件挂钩,他们与我共享,
gppa\u updated\u batch\u fields
这对我的表单不起作用,可能是因为我还使用了自定义重力表单插件。我使用了由开发人员创建的自定义事件挂钩,他们与我共享,
gppa\u updated\u batch\u fields
$(document).on('gppa_updated_batch_fields', function(event, form_id){
   console.log(form_id);
   $('#input_' + form_id + '_' + input_id).css('background', 'red');
});