Ajax jquery 未检测到输入值更改
Ajax input value change not detected by jquery
我有一个带有 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 正在发生变化,但我似乎无法访问它。我有哪些选择?这可能吗?
更新:在直接联系了我正在使用的自定义 Gravity Forms 插件 GF Populate Anything 的插件作者后,他们提供了所需的自定义事件。请参阅下面的答案。
如果我理解正确,你可以使用它。
这个脚本每次都会触发。更多信息请参见 GF 文档 here
(function($) {
$(document).on('gform_post_render', function(event, form_id, current_page){
// Add you jQuery here
});
})(jQuery);
所以我联系了 Gravity Perks 附加插件 GF Populate Anything 的插件开发人员,这里有完美运行的响应:
GP Populate Anything 使用 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 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 正在发生变化,但我似乎无法访问它。我有哪些选择?这可能吗?
更新:在直接联系了我正在使用的自定义 Gravity Forms 插件 GF Populate Anything 的插件作者后,他们提供了所需的自定义事件。请参阅下面的答案。
如果我理解正确,你可以使用它。
这个脚本每次都会触发。更多信息请参见 GF 文档 here
(function($) {
$(document).on('gform_post_render', function(event, form_id, current_page){
// Add you jQuery here
});
})(jQuery);
所以我联系了 Gravity Perks 附加插件 GF Populate Anything 的插件开发人员,这里有完美运行的响应:
GP Populate Anything 使用 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');
});