• <textarea>
    • 简介
    • 子组件
    • 属性
    • 样式
      • 通用样式
      • 伪类样式
      • 文本样式
  • 事件
  • Vue 示例
  • Rax 示例

    <textarea>

    简介

    <textarea><input> 组件类似,可用于接受用户输入数据。<textarea> 支持多行文本输入。 <textarea> 支持 <input> 支持的所有的属性、样式和事件。

    子组件

    <textarea> 不支持子组件。

    属性

    除了支持 input 支持的所有属性外,textarea 还支持 rows 属性,用于指定输入的行数。

    • rows, number, 默认值为2。

    样式

    通用样式

    • 支持所有通用样式。

    伪类样式

    • active
    • disabled
    • enbaled
    • focus

    activefocus 的区别在于,当光标位于输入框里时,它就是 focus 状态,而只有触摸输入框时它才是 active 的状态。

    文本样式

    • 请参考文本样式

    事件

    • 通用事件 支持所有通用事件。
    • input. 当输入状态时,会不断触发。
      • @param value: 当前文本。
    • change. 当用户完成了输入时触发。
      • @param value: 当前文本。
    • focus. 当输入框获得焦点时触发。
    • blur. 当输入框失去焦点时触发。
    • return. 当用户点击了“回车”按钮时触发,会返回此时“回车”按钮的动作类型。
      • @param value: 当前文本。
      • @param returnKeyType, “default” | “go” | “next” | “search” | “send” | “done”.
    • keyboard. 当键盘弹起或收起时触发。
      • @param isShow: boolean, 显示或隐藏键盘。
      • @param keyboardSize: 键盘的高度,以前端使用的样式单位返回。

    Vue 示例

    1. <template>
    2. <div class="wrapper">
    3. <textarea class="textarea" @input="oninput" @change="onchange" @focus="onfocus" @blur="onblur"></textarea>
    4. </div>
    5. </template>
    6. <script>
    7. const modal = weex.requireModule('modal')
    8. export default {
    9. methods: {
    10. oninput (event) {
    11. console.log('oninput:', event.value)
    12. modal.toast({
    13. message: `oninput: ${event.value}`,
    14. duration: 0.8
    15. })
    16. },
    17. onchange (event) {
    18. console.log('onchange:', event.value)
    19. modal.toast({
    20. message: `onchange: ${event.value}`,
    21. duration: 0.8
    22. })
    23. },
    24. onfocus (event) {
    25. console.log('onfocus:', event.value)
    26. modal.toast({
    27. message: `onfocus: ${event.value}`,
    28. duration: 0.8
    29. })
    30. },
    31. onblur (event) {
    32. console.log('onblur:', event.value)
    33. modal.toast({
    34. message: `input blur: ${event.value}`,
    35. duration: 0.8
    36. })
    37. }
    38. }
    39. }
    40. </script>
    41. <style>
    42. .textarea {
    43. font-size: 50px;
    44. width: 650px;
    45. margin-top: 50px;
    46. margin-left: 50px;
    47. padding-top: 20px;
    48. padding-bottom: 20px;
    49. padding-left: 20px;
    50. padding-right: 20px;
    51. color: #666666;
    52. border-width: 2px;
    53. border-style: solid;
    54. border-color: #41B883;
    55. }
    56. </style>
    • 示例
    • 事件示例
    • 绑定示例

    Rax 示例

    rax-textinput<textarea> 组件的上层封装,抹平了 Web 和 Weex 的展现

    1. import { createElement, render } from "rax";
    2. import Driver from 'driver-universal';
    3. import TextInput from "rax-textinput";
    4. function App() {
    5. return (
    6. <View style={{margin: '20rpx'}}>
    7. <TextInput
    8. multiline={true}
    9. numberOfLines={3}
    10. style={{
    11. height: '150rpx',
    12. width: '600rpx',
    13. borderWidth: '1rpx',
    14. borderColor: '#dddddd',
    15. borderStyle: 'solid'
    16. }}
    17. />
    18. </View>
    19. );
    20. }
    21. render(<App />, document.body, { driver: Driver });

    rax-textinput 文档