jQuery 更改为隐藏字段后触发重力表单中的表单更新

问题描述 投票:0回答:2

简而言之:是否有 JavaScript 函数或挂钩来触发重力形式的更新,以便执行条件逻辑?

原问题:

我正在使用重力形式,并且我创建了一个“变化”事件

$('#gform_1').find('.gfield_date_dropdown_month select').change(function () {
      var month = $(this).val();
      $('input#input_1_6').val(month).change();
});

在此事件之后,我希望重力表单检查/更新表单,以便将“条件逻辑”执行到相关字段。

我已经检查了 https://docs.gravityforms.com/category/extending-gravity-forms/hooks/javascript 上的钩子 但我找不到可以用于此目的的钩子。有什么想法吗?

更新: 更改的字段 (#input_1_6) 是“隐藏”的。这似乎是问题所在。当我使该字段可见时,它确实有效!因此,对“隐藏”字段的更改似乎不会触发表单的更新。如果我有一个函数可以触发此更新,我可以将其添加到我的 jQuery 函数中。


有关此问题的一些背景信息。我希望当在日期字段中选择某个月份时,该字段变得可见。由于重力形式不支持基于日期字段的“条件逻辑”,我想用“月份值”更新隐藏字段,然后将该值用于相关字段上的“条件逻辑”。

javascript jquery wordpress gravity-forms-plugin
2个回答
2
投票

重力形式条件由

click
change
事件触发,具体取决于字段类型。您可以使用
change
方法手动触发
.change()
事件。

请注意,这不起作用,因为条件未与您附加更改事件的字段绑定,因此您必须在

does
有条件的字段上触发 .change()。假设字段
1_6
是触发条件的字段:

$('#gform_1').find('.gfield_date_dropdown_month select').on('change', function(){
    var month = $(this).val();
    $('#input_1_6').val(month).change();
});

其他一些小注意事项,请考虑使用

.on('change', function(){}
而不是
.change(function(){}
,因为它会在动态元素上触发 - 并且您不需要在
input
之前使用
#input_1_6
,因为它已经是一个独特的元素。

干杯!


0
投票

Gravity Forms 的条件逻辑也可以通过普通 JS 来触发,方法是在更改输入元素的值后向其发送“输入”事件:

input_element.value = '9001';
input_element.dispatchEvent((new Event('input', {'bubbles': true})));
© www.soinside.com 2019 - 2024. All rights reserved.