Validation 重力表单:多页表单验证

Validation 重力表单:多页表单验证,validation,gravity-forms-plugin,gravityforms,Validation,Gravity Forms Plugin,Gravityforms,我在表单的第1页有一个字段47,第3页有一个字段55。当字段47

我在表单的第1页有一个字段47,第3页有一个字段55。当字段47<字段55时,如何在第3页创建gform_验证以提示错误消息?如果两个字段位于同一页上,但不适用于多页,则下面的代码可用于验证。有什么想法吗

谢谢

// multi-page validation
add_filter( 'gform_validation', 'custom_validation' );
function custom_validation( $validation_result ) {
    $form = $validation_result['form'];

    // Financial Assets must be larger than Investment
    if ( rgpost( 'input_47' ) < rgpost( 'input_55' )  ) {

        // set the form validation to false
        $validation_result['is_valid'] = false;

        //finding Field with ID of 1 and marking it as failed validation
        foreach( $form['fields'] as &$field ) {

            //NOTE: replace 1 with the field you would like to validate
            if ( $field->id == '34' ) {
                $field->failed_validation = true;
                $field->validation_message = 'Your Financial Assets (A) cannot be lower than your investment with us. Please fix the discrepancy.';
                break;
            }
        }

    }

    //Assign modified $form object back to the validation result
    $validation_result['form'] = $form;
    return $validation_result;

}

首先,您可以通过
GFFormDisplay::get\u source\u页面($form\u id)
方法获取提交的页面

有几种不同的方法可以做到这一点。为了简单起见,在提交所需的页面之前,我将跳过验证。为此,只需添加如下内容:

if( GFFormDisplay::get_source_page( $form_id ) >= 3 ) {
    return $validation_result;
} 
…在这一行之后:

 $form = $validation_result['form'];
这将仅在大于第3页的页面上运行此验证

 $form = $validation_result['form'];