【问题标题】:3 Gravity Forms on one page一页上的 3 个重力形式
【发布时间】:2025-12-15 19:20:04
【问题描述】:

我目前在一个页面上显示三种重力形式,“display:none;”,并在点击三个相应按钮之一时将它们设置为“block”。

您可以在http://b2bsauce.com/查看示例

问题在于,在验证时,AJAX 部分会重新加载,并显示错误消息并再次将表单显示为隐藏,在这种情况下,这显然没有意义。

有什么方法可以加入验证过程并设置要显示的表单,还是应该以其他方式解决这个问题?

JS

var form = jQuery(this).attr('href');
jQuery('.gform_wrapper').not(form).css('display','none');
jQuery(form).slideDown();

HTML

每个表单都包含在这个包装器中,它被设置为“display:none”。

<div class="gf_browser_chrome gform_wrapper" id="gform_wrapper_1" style="display: block;">
</div>

<div class="gf_browser_chrome gform_wrapper" id="gform_wrapper_2" style="display: block;">
</div>

<div class="gf_browser_chrome gform_wrapper" id="gform_wrapper_3" style="display: block;">
</div>

【问题讨论】:

    标签: javascript jquery ajax wordpress gravity-forms-plugin


    【解决方案1】:

    提交按钮没有href 属性(假设这是被点击的),您是要获取formaction 还是只是将form 实例本身保存到变量中?

    我认为您正在尝试将 form 元素保存到变量中,因此我会将您的代码更改为:

    var $form = jQuery(this).parents('form'); // use $ prefix to show it's a jQuery object
    jQuery('.gform_wrapper').not($form).css('display','none');
    jQuery($form).slideDown(); // not sure if you need this line if the form is already showing
    

    但如果没有某种可以编辑的自包含示例,我不确定这是否就是您所需要的。

    【讨论】:

    • 如果表单未验证并将该块设置为再次显示,我是否有可能挂钩重力表单挂钩?
    • @MarcusChristiansen 抱歉,不确定因为我从未使用过重力形式,但我会看看能不能找到任何东西。
    【解决方案2】:

    重力形式有时会有点棘手,我最终发现了错误。

    我在“.button”类上使用了一个“click”事件监听器来在表单的隐藏/块之间切换。但是,Gravity Forms 中的提交按钮也附加了一个按钮类,因此每次单击提交按钮时它都会隐藏表单。

    因此,我确保点击侦听器仅附加到顶部的三个按钮。

    【讨论】: