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】:重力形式条件由click
或change
事件触发,具体取决于字段的类型。您可以使用.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 + Gravity Forms:对错误的验证执行 jQuery