arkUI:文本框、文本域的创建和常见用法(TextInput 、TextArea)

1 主要内容说明

简单记录arkUI文本框和文本域的基本创建及使用方法。源码添加了许多注释,足够用于理解,且没有很复杂的内容,所以便不过额外多做文字说明了。

2 例子

2.1 文本框、文本域的创建(TextInput 、TextArea)

文本框和文本域的简单创建。

2.1.1 源码1 (文本框、文本域的创建)

/**
 * 文本框,文本域
 */
@Entry
@Component
struct Page_TextInput_case {
  build() {
    // 使用 Column 布局,设置子组件之间的间距为 4
    Column({ space: 4 }) {
      // 输入框组件示例
      TextInput()
        .backgroundColor(Color.Orange) // 设置背景颜色为橙色

      // 带有占位符的输入框
      TextInput({ placeholder: "文本框:提示。。。" })
        .backgroundColor(Color.Yellow) // 设置背景颜色为黄色

      // 多行输入区域
      TextArea({ placeholder: "文本域:多行输入。。。" })
        .backgroundColor(Color.Green) // 设置背景颜色为绿色

      // 带有默认文本的多行输入区域
      TextArea({ text: "使用文本域输入内容:年年岁岁花相似,岁岁年年人不同。年年岁岁花相似,岁岁年年人不同。" })
        .width(200) // 设置宽度为 200
        .height(100) // 设置高度为 100
        .backgroundColor("#baa") // 设置背景颜色为指定的浅色
      // 注意:如果内容高度超过设置的高度,会出现滚动条
    }
  }
}

2.1.2 源码1运行效果

在这里插入图片描述

2.2 设置文本框的输入类型

平常在登陆某种账号时,需要输入账号、密码、验证码。账号基本有数字和字母,密码输入可能会有*号的隐藏显示,验证码设置为只能输入数字类型。

2.2.1 源码2(设置输入框的输入类型)

/**
 * 页面:文本框和文本域示例
 */
@Entry
@Component
struct Page_TextInput_case {
  build() {
    // 使用 Column 布局,设置子组件之间的间距为 4
    Column({ space: 4 }) {
      // 每一行的输入框都放在 Row 布局中
      Row() {
        Text("账号:") // 标签
        TextInput()
          .type(InputType.Normal) // 设置输入框类型为普通文本
          .backgroundColor("#bbc") // 设置背景颜色为灰色
          .layoutWeight(1) // 设置权重为 1,以填充剩余空间
      }

      Row() {
        Text("密码:") // 标签
        TextInput()
          .type(InputType.Password) // 设置输入框类型为密码
          .backgroundColor("#bbc") // 设置背景颜色为灰色
          .layoutWeight(1) // 设置权重为 1
      }
 
      Row() {
        Text("数字:") // 标签
        TextInput()
          .type(InputType.Number) // 设置输入框类型为数字
          .backgroundColor("#bbc") // 设置背景颜色为灰色
          .layoutWeight(1) // 设置权重为 1
      }
    }
  }
}

2.2.2 源码2运行效果

在这里插入图片描述

在这里插入图片描述

2.3 文本框的焦点事件

当我们输入账号时需要鼠标光标点到输入框位置,然后输入账号密码,最后摁登陆或回车进行账号登陆。这里我们未设置按钮。只设置回车后的效果。

2.3.1 源码3(文本框的焦点事件)

/**
 * 页面:文本框和文本域示例
 */
@Entry
@Component
struct Page_TextInput_case {
  build() {
    // 使用 Column 布局,设置子组件之间的间距为 20
    Column({ space: 20 }) {
      // 输入框获取焦点时的提示
      Text("onFocus 获取焦点,下文本框获得焦点时输出内容")
      TextInput()
        .backgroundColor("#bbc") // 设置背景颜色为灰色
        .onFocus(() => {
          console.log("我获得了焦点") // 当输入框获得焦点时输出
        })

      // 输入框失去焦点时的提示
      Text("onBlur 失去焦点,下文本框失去焦点时输出内容")
      TextInput()
        .backgroundColor("#bbc") // 设置背景颜色为灰色
        .onBlur(() => {
          console.log("我失去了焦点") // 当输入框失去焦点时输出
        })

      // 输入框回车时的提示
      Text("回车会触发onSubmit,下输入框有焦点时,摁键盘回车输出内容")
      TextInput()
        .backgroundColor("#bbc") // 设置背景颜色为灰色
        .onSubmit((EnterKeyType) => {
          console.log(EnterKeyType + " 摁了回车") // 当输入框按下回车时输出
        })
    }
  }
}

2.3.2 源码3运行效果

  • 默认情况
    在这里插入图片描述
  • 获取焦点事件
    在这里插入图片描述
  • 失去焦点事件
    在这里插入图片描述
  • 回车事件
    在这里插入图片描述
  • 终端的输出显示。回车输入效果前有6,表示在harmony开发中,回车键用6表示,键盘每个键都各有数字表示。
    在这里插入图片描述

3.结语

把各组件的创建和基本用法都记录一遍,后续回顾查阅会方便许多。
源码中有注释应该够用了,再多的文字说明也不如理会源码。
由于笔者的能力有限,创作的内容有所不足在所难免,也敬请读者包涵和指出,万分感谢!

4.定位日期

2024-11-14;
23:18;

<think>我们被要求使用HTML创建一个包含两个文本框、一个文本域、一个重置按钮一个提交按钮的表单。根据引用[1][3],我们知道表单使用<form>标签,并且表单元素放在<form>标签内部。文本框使用<inputtype="text">,密码框使用<inputtype="password">,但这里不需要密码框,需要的是文本域(多行文本框),文本域使用<textarea>标签。重置按钮使用<inputtype="reset">或<buttontype="reset">,提交按钮使用<inputtype="submit">或<buttontype="submit">。根据引用[1],重置按钮必须在form标签下使用才有效。因此,我们可以按照以下步骤创建:1.使用<form>标签创建表单。2.在表单内添加两个文本框:使用两个<inputtype="text">,并可以加上标签(如“用户名”、“密码”等),但题目没有指定标签,我们可以用“文本框1”、“文本框2”或者自定义。3.添加一个文本域:使用<textarea>标签。4.添加一个重置按钮:使用<buttontype="reset">重置</button>或者<inputtype="reset"value="重置">。5.添加一个提交按钮:使用<buttontype="submit">提交</button>或者<inputtype="submit"value="提交">。注意:为了清晰,我们通常会给每个表单元素加上标签(使用<label>标签),但题目没有要求,我们可以直接放置。根据用户的问题,我们不需要密码框,所以不使用type="password"。代码结构如下:<form>文本框1:<inputtype="text"name="text1"><br>文本框2:<inputtype="text"name="text2"><br>文本域:<textareaname="textarea"></textarea><br><buttontype="reset">重置</button><buttontype="submit">提交</button></form>但是,用户要求的是两个文本框,一个文本域,一个重置按钮,一个提交按钮。上面的代码已经满足。注意:<br>标签用于换行,使表单元素垂直排列。另外,为了语义清晰,我们可以使用<label>标签,但题目没有要求,所以可以省略。下面我们按照要求编写完整代码:</think> 在 HTML 表单中创建两个文本框、一个文本域、一个重置按钮一个提交按钮的实现方法如下: ```html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>表单示例</title> </head> <body> <form action="提交地址"> <!-- 第一个文本框 --> <label for="text1">文本框1:</label> <input type="text" id="text1" name="text1"><br><br> <!-- 第二个文本框 --> <label for="text2">文本框2:</label> <input type="text" id="text2" name="text2"><br><br> <!-- 文本域 --> <label for="textarea">留言区:</label><br> <textarea id="textarea" name="textarea" rows="4" cols="50"></textarea><br><br> <!-- 按钮区域 --> <button type="submit">提交</button> <button type="reset">重置</button> </form> </body> </html> ``` ### 关键组件说明: 1. **文本框**:使用 `<input type="text">` 创建 - 每个文本框应有唯一 `id` `name` - 配合 `<label>` 标签提高可访问性 2. **文本域**:使用 `<textarea>` 标签创建 - 通过 `rows` `cols` 属性设置默认尺寸 - 适合多行文本输入(留言、描述等)[^3] 3. **按钮**: - `type="submit"`:提交表单数据 - `type="reset"`:清除表单内容(需在 `<form>` 内有效)[^1][^2] ### 注意事项: - 所有表单元素需包含在 `<form>` 标签内 - `action` 属性指定表单提交地址(可留空调试) - 使用 `<br>` 控制元素间距,建议实际开发中使用 CSS 布局 - 添加 `name` 属性后表单数据才能被正确处理[^2] 您可以将此代码保存为 .html 文件并用浏览器打开测试。要修改文本框的提示文字,只需编辑 `<label>` 标签的内容;要调整文本域尺寸,修改 `rows`(行数) `cols`(列宽)属性值即可[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值