Vue表单绑定: v-model

Vue表单绑定: v-model

双向绑定
v-model = v-bind + @input(事件)

1.v-model的基本基本使用

 <div id="app">
    <input type="text" v-model="msg">
      {{msg}}
  </div>
  <script>
    const vue = new Vue({
        el: '#app',
        data: {
            msg: 'Hello'
        }
    });
  </script>

在这里插入图片描述

2.v-model 和 radio结合使用

<div id="app">
  <input type="radio" v-model="sex" name="sex" value="男">男
  <input type="radio" v-model="sex" name="sex" value="女">女

  <span v-text="sex"/>
</div>
<script>
    const vue = new Vue({
        el: '#app',
        data: {
            sex: '女'
        }
    });
</script>

在这里插入图片描述

3.v-model结合checkbox

单选返回的是Boolean

<div id="app">
  <label for="agree">是否同意</label>
  <input id="agree" type="checkbox" v-model="flag">

  <button :disabled="!flag">下一步</button>
</div>
<script>
    const vue = new Vue({
        el: '#app',
        data: {
            flag: false
        }
    });
</script>

在这里插入图片描述

多选返回的是数组

<div id="app">
  <input type="checkbox" v-model="hobbies" value="篮球">篮球
  <input type="checkbox" v-model="hobbies" value="足球">足球
  <input type="checkbox" v-model="hobbies" value="乒乓球">乒乓球
  <input type="checkbox" v-model="hobbies" value="羽毛球">羽毛球
  {{hobbies}}
</div>
<script>
    const vue = new Vue({
        el: '#app',
        data: {
            hobbies: []
        }
    });
</script>

在这里插入图片描述

4.v-model 结合select 使用

4.1单选

  <div id="app">
    <select v-model="fruit">
      <option value="苹果">苹果</option>
      <option value="香蕉">香蕉</option>
      <option value="雪莉">雪莉</option>
      <option value="西瓜">西瓜</option>
      <option value="地瓜">地瓜</option>
    </select>
    <h1>你选择了水果:{{fruit}}</h1>
  </div>
  <script>
    const vue = new Vue({
        el: '#app',
        data: {
            fruit: '西瓜'
        }
    });
  </script>

在这里插入图片描述

4.2多选

需要绑定数组

  <div id="app">
  <select name="a1" v-model="fruits" multiple="multiple">
    <option value="苹果">苹果</option>
    <option value="香蕉">香蕉</option>
    <option value="雪莉">雪莉</option>
    <option value="西瓜">西瓜</option>
    <option value="地瓜">地瓜</option>
  </select>
  <h1>你选择了水果:{{fruits}}</h1>
  </div>
  <script>
    const vue = new Vue({
        el: '#app',
        data: {
            fruits: [],
        }
    });
  </script>

在这里插入图片描述

5.值绑定

  <div id="app">
    <label v-for="item in originFruits" :for="item">
      <input :id="item" type="checkbox" :value="item" v-model="fruits">{{item}}
    </label>
  </div>
  <script>
    const vue = new Vue({
        el: '#app',
        data: {
            originFruits: ['西瓜', '香蕉', '苹果', '雪梨'],
            fruits: [],
        }
    });
  </script>

在这里插入图片描述

6.修饰符

6.1 lazy

就是不想用户输入的时候,实时绑定,会浪费资源。
添加lazy只会失去焦点或者敲回车键。

  <div id="app">
    <input type="text" v-model.lazy="message">
    <h1>您输入的是: {{message}}</h1>
  </div>
  <script>
    const vue = new Vue({
        el: '#app',
        data: {
            message: '',
        },
    })
  </script>

有焦点或者没有回车:
在这里插入图片描述
失去焦点或者回车:
在这里插入图片描述

6.2 number

希望用户输入的数字绑定后得到的是number类型

<div id="app">
  <input type="number" v-model.lazy="message">
  <h1>类型:{{typeof(message)}}</h1>
</div>
<script>
    const vue = new Vue({
        el: '#app',
        data: {
            message: '',
        },
    })
</script>

在这里插入图片描述

<div id="app">
  <input type="number" v-model.lazy.number="message">
  <h1>类型:{{typeof message}}</h1>
</div>
<script>
    const vue = new Vue({
        el: '#app',
        data: {
            message: '',
        },
    })
</script>

在这里插入图片描述

6.3 trim

清除前后的空格
没加trim:

<div id="app">
  <input type="text" v-model="message">
</div>
<script>
    const vue = new Vue({
        el: '#app',
        data: {
            message: '',
        },
    })
</script>

在这里插入图片描述
加trim:

<div id="app">
  <input type="text" v-model.trim="message">
</div>
<script>
    const vue = new Vue({
        el: '#app',
        data: {
            message: '',
        },
    })
</script>

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值