jQuery 更改为隐藏字段后,在 Gravity Forms 中触发表单更新

Posted

技术标签:

【中文标题】jQuery 更改为隐藏字段后,在 Gravity Forms 中触发表单更新【英文标题】:Trigger a form update in Gravity Forms after jQuery change to hidden field 【发布时间】:2018-12-01 03:05:16 【问题描述】:

简短说明:是否有 javascript 函数或钩子来触发重力表单的更新以便执行条件逻辑?

原始问题:

我正在使用 Gravity Forms 并且我创建了一个“on change”事件

$('#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 函数中。


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

【问题讨论】:

【参考方案1】:

重力形式条件由clickchange 事件触发,具体取决于字段的类型。您可以使用.change() 方法手动触发change 事件。

请注意,这不起作用,因为条件与您附加更改事件的字段无关,因此您必须在确实具有条件的字段上触发.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_1_6 之前使用input,因为它已经是一个独特的元素。

干杯!

【讨论】:

@Xhunk 谢谢。我已经复制了你的代码,但条件仍然没有被触发。你可以在这里看到它:frsurf.com/test-page。我确实看到条件在提交带有 #input_1_6 中的值的表单后有效,因此条件似乎设置正确。但只是不更新​​“现场”。你怎么看? 您确定条件设置正确吗?我尝试手动更改字段的值,但仍然没有显示字段 是的。您可以更改月份并提交。您将看到一个新字段出现。试试 1 月和 12 月 你看到页面重新加载时出现的另一个字段吗? 是的。您可以在管理员中分享条件的屏幕截图吗?

以上是关于jQuery 更改为隐藏字段后,在 Gravity Forms 中触发表单更新的主要内容,如果未能解决你的问题,请参考以下文章

jquery 类更改为 div 不适用于 asp,net

jQuery + Gravity Forms:对错误的验证执行 jQuery

JQuery validate + Gravity 表单冲突?

当输入字段显示从无更改为阻止时,jQuery 验证停止

使用 jQuery 或 Ajax 显示或隐藏字段 [关闭]

cakephp sluggable 字段在从“名称”更改为“标题”后不会显示在索引中