1.4 v-model

一、v-model绑定text

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="first">
    <!-- 1. v-model和text:将输入框中的值和变量动态双向绑定-->
    用户名:<input type="text" v-model="username"><br>
    密码:<input type="text" v-model="password"><br>
    {{username}}---{{password}}
    
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    let app = new Vue({
        el: "#first",
        data:{
            username: "舒展",
            password: "123456",
        }
    })
</script>
</body>
</html>

二、v-model绑定radio

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="first">
    <!-- 1. radio:和Vue 无关
             1.1 type: radio为单选框或者多选框
             1.2 id:   该input框的名称
             1.3 value:该input框的具体值
             1.4 name: 如果多个input为一个name,则可达到互斥效果,不然可多选-->
    <input type="radio" id="male" value="" name="sz"><br>
    <input type="radio" id="female" value="" name="sz"><br>
     <h2>分割开</h2>

    <!--2. 将input的值 和 对应的Vue的变量的值绑定起来
           2.1 其中animalName在Vue中可以给空值
           2.2 也可以给对应的input中的值-->
    <input type="radio" id="dog" value="" name="animal" v-model="animalName"><br>
    <input type="radio" id="cat" value="" name="animal" v-model="animalName"><br>
    {{animalName}}

</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    let app = new Vue({
        el: "#first",
        data:{
            animalName: '狗',
            // animalName: '',
        }
    })
</script>
</body>
</html>

三、v-model绑定checkout

1. 单选框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="first">

    <!--1. checkbox作为单选框:
                   一般默认设置为false值,通过点击checkbox来切换对应的值-->
    <input type="checkbox" id="license" v-model="isAgree">同意协议<br>
   <h2>您的选择是{{isAgree}}</h2>

    <!--2. 绑定的变量:为true时候不能点击下一步-->
    <button v-bind:disabled="isAgree">下一步</button>

</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    let app = new Vue({
        el: "#first",
        data:{
            isAgree: false,
        }
    })
</script>
</body>
</html>

2. 多选框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="first">

    <!--1. 会将value中的值,赋值给对应的数组-->
    <input type="checkbox" value="篮球" v-model="hobbies">选项一: 篮球<br>
    <input type="checkbox" value="足球" v-model="hobbies">选项二: 足球<br>
    <input type="checkbox" value="乒乓球" v-model="hobbies">选项三: 乒乓球<br>
    <input type="checkbox" value="羽毛球" v-model="hobbies">选项四: 羽毛球<br>
    <input type="checkbox" value="台球" v-model="hobbies">选项五: 台球<br>
    您的爱好是: {{hobbies}}

</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    let app = new Vue({
        el: "#first",
        data:{
            hobbies:[],
        }
    })
</script>
</body>
</html>

四、v-model绑定select

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="first">

    <!--1. 联动下拉框:单选
           1.1.  页面显示值:选项一:游泳
           1.2.  Vue中绑定的值:value对应的值
           1.3.   默认值可以通过vue中绑定的变量指定-->
   <select v-model="hobby">
       <option value="游泳">选项一:游泳</option>
       <option value="唱歌">选项二:唱歌</option>
       <option value="跳舞">选项三:跳舞</option>
       <option value="滑冰">选项四:滑冰</option>
   </select><br>
   您的爱好: {{hobby}}

    <h2>------</h2>


    <!--2. 联动下拉框:多选,可以对应数组 [] 或 ''
               2.1 页面选择 ctrl-->
    <select v-model="hobbies" multiple>
        <option value="游泳">选项一:游泳</option>
        <option value="唱歌">选项二:唱歌</option>
        <option value="跳舞">选项三:跳舞</option>
        <option value="滑冰">选项四:滑冰</option>

    </select><br>
    您的爱好: {{hobbies}}
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    let app = new Vue({
        el: "#first",
        data:{
            hobby:'跳舞',
            //hobby:'',
            hobbies: [],
        }
    })
</script>
</body>
</html>

五、v-model常见修饰符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="first">
    <!--1. lazy: v-model绑定的数据是和输入框同时变化
                  lazy可以使input框输入,失去焦点后才生效-->
   <input type="text" v-model.lazy="message"><br>
    你好:{{message}}<br>


    <!--2. number: 默认的input框对应的age,都会把String类型赋值给对应变量
                   将对应的age字段,规定为number类型-->
    <input type="text" v-model="age"><br>
    年龄:{{age}} {{typeof age}}<br>
    <input type="text" v-model.number="age"><br>
    年龄:{{age}} {{typeof age}}<br>

    <!--3. trim: 去掉两个边的空格
                 若不去掉,通过控制台拿到的数据,就有可能带空格-->

    <input type="text" v-model.trim ="name"><br>
    姓名:{{name}}
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    let app = new Vue({
        el: "#first",
        data:{
            message: "Hello World",
            age: 0,
            name: 'shuzhan',
        }
    })
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值