You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gravity Forms提交出错时清空输入,如何保留已填字段?

解决Gravity Forms(Elementor嵌入+AJAX)提交错误后清空字段的问题

方法1:检查Gravity Forms核心设置

  • 进入Gravity Forms后台,找到对应表单的「表单设置」,确认启用动态字段填充选项已勾选。这个选项默认开启,但如果被误关,会导致验证失败时无法保留用户输入。
  • 再次确认表单的「AJAX提交」设置是正常启用状态。

方法2:添加PHP钩子强制保留字段值

如果默认设置无效,把以下代码添加到主题的functions.php文件,或者用代码片段插件(比如Code Snippets)来添加:

add_filter( 'gform_ajax_return', 'gf_keep_field_values_on_error', 10, 2 );
function gf_keep_field_values_on_error( $response, $form ) {
    // 仅在表单验证失败时执行
    if ( isset( $response['is_valid'] ) && ! $response['is_valid'] ) {
        // 获取用户提交的原始数据
        $submission = GFFormsModel::get_current_submission();
        if ( $submission ) {
            // 将字段值回传给前端用于填充
            $response['field_values'] = $submission['field_values'];
        }
    }
    return $response;
}

这段代码会在AJAX返回错误时,把用户输入的字段值传递回前端,让Gravity Forms自动填充到对应字段里。

方法3:排查Elementor或缓存插件冲突

  • 临时关闭Elementor的优化选项:进入Elementor > 设置 > 高级,禁用「加载JavaScript文件延迟」「合并JavaScript」等选项,这些优化可能干扰AJAX的字段保留逻辑。
  • 如果用了缓存插件(比如WP Rocket、W3 Total Cache),临时禁用页面缓存和JS缓存,测试问题是否解决。缓存可能导致前端无法正确接收AJAX返回的字段值。

方法4:排查前端JS冲突

  • 打开浏览器开发者工具(按F12),切换到「控制台」标签,查看提交表单时是否有JS报错。如果有错误,先修复这些冲突(比如禁用可疑的插件/主题脚本)。
  • 可以临时切换到WordPress默认主题(比如Twenty Twenty-Four),测试表单是否正常保留字段,以此排除主题带来的冲突。

内容的提问来源于stack exchange,提问作者OhMad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 14:52:06