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

如何阻止Elementor Pro表单提交后清空字段?

Elementor Pro表单提交后自动刷新问题的解决方案分享

问题场景

在WordPress网站使用Elementor Pro创建表单,点击提交按钮后后端能正常处理数据,但页面会自动刷新,所有表单字段恢复默认值。以一个两数相加功能的表单为例,提交后计算结果能正常返回,但输入的数字会被清空,严重影响Web应用的使用体验。

当前实现代码

前端展示与交互代码

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
    jQuery( document ).ready(function( $ ){
        jQuery( document ).on('submit_success', function(event, response){
            document.getElementById("result").innerHTML = response.data['1'].result;
        });
    });
</script>
<p id='result'>The result will appear here.</p>

后端处理代码(通过Code Snippets插件添加)

function add_two_numbers($fields) {
    $a = $fields['a'];
    $b = $fields['b'];
    return $a + $b;
}

// 处理自定义表单提交
add_action( 'elementor_pro/forms/new_record', function( $record, $handler ) {
    // 校验目标表单
    $form_name = $record->get_form_settings( 'form_name' );
    if ( 'AdderForm' !== $form_name ) {
        return;
    }
    
    $raw_fields = $record->get( 'fields' );
    $fields = [];
    foreach ( $raw_fields as $id => $field ) {
        $fields[ $id ] = $field['value'];
    }
    
    $output['result'] = add_two_numbers($fields);
    
    $handler->add_response_data( true, $output );
}, 10, 2 );

无效的官方尝试路径

  • 查阅Elementor官方文档,尝试设置动态默认值
  • 排查表单内置的所有相关设置
  • 搜索「Elementor提交后不刷新表单」「Elementor保存表单默认值」等关键词,未找到官方支持的解决方案

非直观解决方案

通过拦截表单的默认提交行为,阻止页面刷新,同时保留Elementor的AJAX提交逻辑,实现提交后字段不重置:

jQuery(document).ready(function($) {
    // 拦截目标表单的提交事件
    $(document).on('submit', '.elementor-form', function(e) {
        // 仅针对名为AdderForm的表单
        if ($(this).find('input[name="form_name"]').val() === 'AdderForm') {
            e.preventDefault(); // 阻止页面默认刷新
            // 触发Elementor的AJAX提交逻辑
            $(this).find('.elementor-button[type="submit"]').trigger('click');
        }
    });

    // 保留原有的结果展示回调
    $(document).on('submit_success', function(event, response) {
        document.getElementById("result").innerHTML = response.data['1'].result;
    });
});

注意:需确保Elementor表单设置中已开启「AJAX提交」选项,否则上述逻辑无法生效。

欢迎提供更优方案,或告知Elementor新版本是否已原生支持提交后保留表单字段的功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:31:14