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

Drupal9搭配Webform使用Captcha模块如何修改/移除默认验证提示文本

Drupal 9 搭配Webform使用Captcha模块时移除/替换默认验证提示文本方案

Captcha模块默认展示的*“本问题用于验证您是否为人类访客,防止自动化垃圾信息提交”*是内置的全局说明文案,可根据需求选择以下任意一种方案修改:

方法1:后台全局配置修改(最推荐,零代码)

  • 登录Drupal站点后台,进入顶部管理菜单「配置」板块,找到「人员/权限验证」分类下的CAPTCHA设置入口,对应路径为 /admin/config/people/captcha
  • 在设置页找到「CAPTCHA说明文本」输入项:
    • 要完全隐藏这段提示,直接清空输入框内容即可
    • 要替换为自定义文本/其他语言文案,直接在输入框内填入目标内容
  • 保存配置后清空Drupal全站缓存,所有加载Captcha验证的表单(包括所有Webform构建的表单)都会同步生效。

方法2:单个Webform单独修改(不影响其他表单)

如果仅需要调整某一个Webform内的验证码提示、保留其他场景的默认文案,可直接在Webform内配置:

  • 进入目标Webform的构建页面,找到已添加的Captcha验证元素,点击编辑按钮
  • 在元素配置页找到「描述(Description)」输入项,清空内容即可隐藏默认提示,或填入自定义的多语言文案
  • 保存Webform配置、清空缓存后即可生效,修改仅作用于当前Webform。
    如果需要实现动态展示文案的逻辑,可在Webform的「表单Alter」配置区通过代码修改Captcha元素的#description属性。

方法3:主题层全局覆写(适合多语言站点)

如果需要结合多语言逻辑、或统一通过代码层管控提示文案,可在当前使用的自定义主题中添加预处理逻辑:

  1. 进入自定义主题的根目录,找到或新建 {主题机器名}.theme 文件
  2. 添加如下表单alter钩子代码:
    /**
     * Implements hook_form_alter().
     */
    function 主题机器名_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
      // 检测表单是否加载了Captcha元素
      if (isset($form['captcha'])) {
        // 移除默认提示文本
        $form['captcha']['#description'] = '';
        // 多语言场景可使用t()函数包裹自定义文案,自动匹配站点当前语言
        // $form['captcha']['#description'] = t('请完成验证后提交表单');
      }
    }
    
  3. 保存文件后清空Drupal全站缓存,修改即可全局生效。

注意:如果修改后页面未展示预期效果,优先检查Drupal的渲染缓存、页面缓存是否清空,Drupal 9的缓存机制需清空对应缓存后才会加载新的配置或代码逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 18:54:32