用v-model和输入绑定实现textarea的两个输入绑定教程以及文本区的使用实例

889 阅读2分钟

textarea是HTML中的一个多行输入组件。它被用于网络应用中的输入表单,以获取用户的输入。

它可以在HTML中创建,如下所示

<textarea placeholder="Please enter comments"></textarea>

在这篇文章中,如何用v-model和输入绑定实现textarea的两个输入绑定,以及文本区的使用实例。

简单的TextArea例子 vuejs

像任何输入表单控件一样,Textarea 值使用v-model 指令映射到vue组件实例。

Vue使用v-model指令提供双向绑定,将数据从表单输入控件传到/传到控制器。

在下面这个vue组件中

在vue组件的模板中声明了textarea 添加了v-model以实现从模板到/从脚本的双向绑定 声明了消息属性,在数据函数中配置了v-model属性。

<template>
  <div class="hello">
    <textarea v-model="message" placeholder="Please add"></textarea>
  </div>
  <span>Comments:</span>
  <p style="white-space: pre-line">{{ message }}</p>
  <br />
</template>

<script>
export default {
  name: "textarea",
  props: {
    message: String,
  },
  data: function () {
    return {
      message: "",
    };
  },
};
</script>

<style scoped>
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

v-model提供了双向的数据绑定,同样可以通过:value@input 来实现,即文本区输入绑定 :value 提供了从输入中读取值的功能,即单向绑定@input 允许设置输入文本区的值。

这样我们就可以在没有v-model的情况下实现双向绑定

<template>
  <div class="hello">
    <textarea
      :value="message"
      @input="message = $event.target.value"
      rows="10"
      cols="50"
    ></textarea>
  </div>
</template>

<script>
export default {
  name: "textarea",
};
</script>

vuejs中textarea组件的字符数

这是一个限制textarea字符数为100的例子,如果字符数超过100就会出现错误信息。在这个例子中。

-keyup 事件添加了事件处理函数 - characterCount,使用v-on: 语法进行绑定

  • 定义了一个文本区域属性的初始值以及字符和待定字符数。
  • v-model持有用于双向绑定的数据属性信息
  • isError是一个布尔标志,用于检查计数是否小于-1,并显示红色的错误。
  • characterCount有一个检查在文本区输入的字符数的逻辑。