重力表单gform_pre_submission钩子是否适用于带有"下一步"按钮和多个步骤的表单?



我的表单有多个步骤。

你填写一些内容,单击下一步,然后填写更多内容。

我担心的是,该函数直到按下提交按钮时才会触发。

届时,我是否能够操作先前字段上的数据?

<?php

//Change _6 to the form ID number everywhere
add_action('gform_pre_submission_6', 'capitalize_fields_6');
function capitalize_fields_6($form){
// add all the field IDs you want to capitalize, to this array
$fields_to_cap = array('input_id_here');
// add all uppercase first letter id's, to this array
$field_to_firstLetter = array('input_id_here');

foreach ($fields_to_cap as $each) {
// for each field, convert the submitted value to uppercase and assign back to the POST variable
// the rgpost function strips slashes
$_POST[$each] = strtoupper(rgpost($each));
}
foreach ($field_to_firstLetter as $each) {
$_POST[$each] = ucwords(rgpost($each));
}

// return the form, even though we did not modify it
return $form;
}

?>

gform_pre_submission钩子仅在表单实际 POST 之后触发,但在对来自表单的数据执行任何重要操作之前触发。

多页表单不会在页面之间提交任何内容,它或多或少只是将页面包装在块中并显示/隐藏它们 - 它只是被设计为一种"更美观"的方式来呈现长表单,而不是在您的页面上拥有非常可滚动的表单。例外情况是"保存并继续"选项,但实际上仍然没有验证字段掩码/格式之外的任何内容,并且它不会通过gform_pre_submission运行。

如果您需要在以前的页面上"操作数据",则最好使用 JavaScript 的.onchange()事件处理程序函数在提交数据之前抢先更改数据,但在将数据键入字段之后。您还可以在所需的输入上使用 CSS 的text-transform属性并将其设置为capitalize(请注意,这仅影响显示而不是实际值,因此您仍然需要通过gform_pre_submission钩子运行它。

相关内容

  • 没有找到相关文章

最新更新