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

Gravity Forms v2.10.3:限制textarea行数并保留垂直调整功能

解决Gravity Forms Textarea固定行数且保留垂直拉伸功能的问题

问题核心

Gravity Forms当前版本中,即使选择「SMALL」字段尺寸,textarea仍被硬编码为rows="10",需要将初始行数限制为3行,同时保留用户垂直调整文本框大小的能力。此前尝试的函数钩子未生效,常规CSS(如max-height、固定height)会限制拉伸功能。

解决方案

1. 用PHP钩子修改硬编码的rows属性

使用gform_field_content钩子直接替换textarea的rows属性值,仅针对SMALL尺寸的textarea生效:

add_filter( 'gform_field_content', 'custom_small_textarea_rows', 10, 5 );
function custom_small_textarea_rows( $content, $field, $value, $lead_id, $form_id ) {
    if ( $field->type === 'textarea' && $field->size === 'small' ) {
        $content = str_replace( 'rows="10"', 'rows="3"', $content );
    }
    return $content;
}

将这段代码添加到主题的functions.php文件或自定义插件中。

2. 配套CSS确保拉伸功能正常

添加以下CSS,避免GF默认样式覆盖拉伸权限,同时保证初始高度匹配3行:

.gform_wrapper .gform_field--size-small textarea {
    resize: vertical; /* 明确允许垂直拉伸 */
    min-height: auto; /* 移除可能的固定最小高度限制 */
    height: auto; /* 让高度由rows属性控制 */
}

3. 备用方案:JS动态修改(若钩子未生效)

如果GF渲染逻辑导致PHP钩子不触发,可通过JS在页面加载后修改rows属性:

document.addEventListener('DOMContentLoaded', () => {
    document.querySelectorAll('.gform_field--size-small textarea').forEach(textarea => {
        textarea.setAttribute('rows', '3');
    });
});

关键说明

  • 直接修改rows属性是控制初始行数的标准方式,配合resize: vertical可保留拉伸能力,避免了max-height或固定height导致的拉伸限制问题。
  • 若PHP钩子不生效,检查GF版本是否有字段渲染逻辑更新,或确认字段尺寸的判断条件(部分版本可能用field->cssClass替代field->size)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:52:40