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

Elementor Pro表单非必填字段验证问题求助

解决Elementor Pro表单非必填字段验证问题

你的代码问题在于没有区分「字段为空」和「字段内容不符合规则」的场景——哪怕非必填字段留空,代码依然会执行正则匹配,而空字符串肯定不满足正则规则,所以会触发错误提示导致表单无法提交。

只需要在验证逻辑前加一层判断:仅当字段有输入值时,才执行格式验证,空值直接跳过即可。修改后的代码如下:

add_action( 'elementor_pro/forms/validation', function ( $record, $ajax_handler ) {
    $fields = $record->get_field( [
        'id' => 'dot',
    ] );

    if ( empty( $fields ) ) {
        return;
    }

    $field = current( $fields );
    
    // 字段为空时直接跳过验证
    if ( empty( $field['value'] ) ) {
        return;
    }

    if ( 1 !== preg_match( '/[1-9]{1}[0-9]{5,7}/', $field['value'] ) || $field['value'] == '123456' || $field['value'] == '12345678' ) {
        $ajax_handler->add_error( $field['id'], 'Invalid DOT#' );
    }
}, 10, 2 );

关键修改说明

  • 新增的if ( empty( $field['value'] ) ) { return; }语句,让非必填字段留空时直接终止验证逻辑,表单可以正常提交。
  • 只有当用户实际输入内容时,才会触发正则匹配和排除值的检查,完美适配「仅当用户输入时才需验证」的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:55:21