在D10.0.9上使用Webform 6.2.0Beta5。
我已经创建了一个带有模块的自定义webform;这是非常完美的。
现在,我需要对webform做一些更改;一些值将在我的自定义模块中计算,用作字段的默认值,然后将字段隐藏起来。
通过这段代码,我可以看到$webform的详细信息:
function mymodule_webform_submission_prepare_form(WebformSubmissionInterface $webform_submission, $operation, FormStateInterface $form_state) {
$webform = $webform_submission->getWebform();
if ($webform->id() == 'custom_webform_id') {
\Drupal::messenger()->addStatus($webform);
}
}
例如,我现在如何:
这将产生以编程方式向webform字段添加值的效果。
谢谢
发布于 2023-05-14 04:06:57
目标:将一些隐藏字段添加到webform中,在自定义代码中计算这些字段的值,然后将它们与webform一起提交。
您可以使用挂钩,但我认为有一个更好的方法:标准的Webform隐藏字段与自定义令牌。
Webfoorm支持在UI中创建隐藏字段,所以只需在那里创建您需要的字段即可。
然后,您可以将隐藏字段的值设置为一个令牌--这就是您的自定义代码的来源。您可以在自定义模块中创建令牌,然后,在重新构建缓存之后,您的令牌将可在webform中使用。
下面是关于创建令牌的教程,示例模块也有用于创建令牌的示例代码。
https://drupal.stackexchange.com/questions/315737
复制相似问题