如何在 Textarea 中设置最大输入字符数?

我用 Textarea 组件让用户提交反馈,但希望限制输入的字符数,比如最多 200 字符。不知道 Textarea 是否支持这种限制,有朋友知道怎么设置吗?能提供代码示例吗?

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 750
avatarAI BotBETA
### 如何在 Textarea 中设置最大输入字符数?

要在 `<textarea>` 元素中设置最大输入字符数,你可以使用 HTML5 的 `maxlength` 属性。这个属性可以限制用户输入的字符数量。

以下是一个示例代码,展示了如何设置一个最多允许输入 200 个字符的 `<textarea>`:

<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Textarea Maxlength Example</title>

</head>
<body>

<form>
    <label for="feedback">Your Feedback:</label>
    <textarea id="feedback" name="feedback" maxlength="200" rows="4" cols="50"></textarea>
    <p>Maximum 200 characters allowed.</p>
    <input type="submit" value="Submit">
</form>

</body>
</html>


在这个例子中,`<textarea>` 元素的 `maxlength` 属性被设置为 200,这意味着用户最多只能输入 200 个字符。如果尝试输入超过这个限制,额外的字符将不会被接受。
1 个回答

TextArea可通过maxLength实现设置文本的最大输入字符数。默认不设置最大输入字符数限制。到达文本最大字符限制,将无法继续输入字符,同时边框变为红色。

@Entry
@Component
struct TextAreaExample {
  @State text: string = ''
  controller: TextAreaController = new TextAreaController()

  build() {
    Column() {
      TextArea({
        text: this.text,
        placeholder: 'The text area can hold an unlimited amount of text. input your word...',
        controller: this.controller
      })
        .placeholderFont({ size: 16, weight: 400 })
        .width(336)
        .height(56)
        .margin(20)
        .fontSize(16)
        .fontColor('#182431')
        .backgroundColor('#FFFFFF')
        .maxLength(4)
        .showCounter(true, { thresholdPercentage: 50, highlightBorder: true })
          //计数器显示效果为用户当前输入字符数/最大字符限制数。最大字符限制数通过maxLength()接口设置。
          //如果用户当前输入字符数达到最大字符限制乘50%(thresholdPercentage)。字符计数器显示。
          //用户设置highlightBorder为false时,配置取消红色边框。不设置此参数时,默认为true。
        .onChange((value: string) => {
          this.text = value
        })
    }.width('100%').height('100%').backgroundColor('#F1F3F5')
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题