表单控件在实际开发中是非常常见的。特别是对于用户信息的提交,需要大量的表单。

Vue中使用v-model指令来实现表单元素和数据的双向绑定

1、v-model的基本使用

<div id="app">
  <input type="text" V-model="message">
  <h2>{{message}}</h2>
</div>

const app = new Vue({
  el: "#app", //用于挂载要管理的元素
  data: {   //定义数据
    message: 'hello'
  }
})

==v-model其实是一个语法糖,它的背后本质上是包含两个操作==

1).v-bind绑定一个value属性

2).v-on指令给当前元素绑定input事件

也就是说下面的代码:等同于下面的代码:

<input type="text" v-model="message">
等同于
<input type="text" v-bind:value="message" v-on:input="message = $event.target.value">

2、v-model集合radio使用

<div id="app">
  <lable for="male">
    <input type="radio" id="male" name="sex" value="男" v-model="sex">男
  </lable>
  <lable for="female">
    <input type="radio" id="female" name="sex" value="女" v-model="sex">女
  </lable>

  <h3>您选择的性别是:{{sex}}</h3>
</div>

clipboard

3、v-model结合checkbox使用

<div id="app">
 <!-- 1、单选框演示-->
  <label for="agree">
    <input type="checkbox" id="agree" v-model="isAgree">同意协议
  </label>

  <h3>您选择的性别是:{{isAgree}}</h3>


  <!--2、复选框演示-->
  <input type="checkbox"  value="篮球" v-model="hobbies">篮球
  <input type="checkbox"  value="足球" v-model="hobbies">足球
  <input type="checkbox"  value="乒乓球" v-model="hobbies">乒乓球
  <input type="checkbox"  value="羽毛球" v-model="hobbies">羽毛球
  <h3>您的兴趣是:{{hobbies}}</h3>
</div>

const app = new Vue({
  el: "#app", //用于挂载要管理的元素
  data: {   //定义数据
    message: 'hello',
    isAgree: false,
    hobbies: []
  }
})

clipboard

4、v-model和select结合使用

<div id="app">

  <!--1、选择一个-->
  <select name="abc" id="" v-model="fruit">
    <option value="苹果" >苹果</option>
    <option value="香蕉">香蕉</option>
    <option value="榴莲">榴莲</option>
    <option value="芒果">芒果</option>
  </select>

  <!--选择多个-->
  <select name="abc" id="" v-model="fruit" multiple>
    <option value="苹果" >苹果</option>
    <option value="香蕉">香蕉</option>
    <option value="榴莲">榴莲</option>
    <option value="芒果">芒果</option>
  </select>
  <h3>您选择的水果是:{{fruit}}</h3>
</div>

5、v-model修饰符的使用

1) 修饰符lazy: 当在input框,输入数据时,不会立即将其绑定到变量中,

而是在失去焦点时,进行数据的绑定

<input type="text" v-model.lazy="message">

<h3>{{message}}</h3>

2) 修饰符 number: 不加number修饰符的话,默认输入类型是String类型的

<input type="number" v-model.number="age">

<h3>{{age}} - {{typeof age}}</h3>

3)修饰符trim :去掉输入的数据的前后字符串

<input type="text" v-model.trim="name">
<h3>{{name}}</h3>
Logo

前往低代码交流专区

更多推荐