vue表单输入绑定

使用v-model指令实现双向数据绑定的集合
v-model是v-on和v-bind指令的语法糖(指令集合)
可以使用v-model指令在表单 input、textarea、select等元素上创建双向数据绑定,他会根据控件类型自动选取正确的方法来更新元素。
加上v-model后,只要视图的数据发生了改变,那么vm中的model层的数据也会对应发生改变
<
p>输入框默认值{{inputMsg}}</p> <input type="text" v-model="inputMsg">

效果如下:

 v-model的操作原理如下:

text和textarea元素使用value属性和input事件
checkbox和radio使用checked属性和change事件
select字段将value作为prop并将change作为事件
单选框的效果如下:
        <h3>单选框</h3>
        <input type="radio" name="kkk" value="男" v-model="sexMsg">   #使用v-model将vm中data的值绑定进来,实现双向数据绑定。
        <input type="radio" name="kkk" value="女" v-model="sexMsg">
        <p>性别是{{sexMsg}}</p>

 <script>
        let vm = new Vue({
            el : "#app",
            data : {
                //有没有默认值是根据业务来的
                inputMsg: '',
                mutipleMsg: '',
                sexMsg: ''  #给他默认性别是女的话,联合v-model绑定会在女的当选框中进行选定。
            }
        })
    </script>

效果如下:

 单个复选框的代码如下:

        <h4>只有一个复选框时</h4>
        <input type="checkbox" v-model="checked"> #并不需要定义name属性,当选上的时候vm中checked的值会变成true。否则,会变成false
        <p>单个复选框{{checked}}</p>

多个复选框,需要绑定的是一个数组,并且需要指明name和value属性

        <h4>多个复选框</h4>
        <!-- 对于多个复选框,需要绑定的是一个数组,并且需要指明name和value属性 -->
        <input type="checkbox" name="hobby" value="足球" v-model="multipleChe">足球
        <input type="checkbox" name="hobby" value="篮球" v-model="multipleChe">篮球
        <input type="checkbox" name="hobby" value="羽毛球" v-model="multipleChe">羽毛球
        <p>复选框内容{{multipleChe}}</p>
    <script>
        let vm = new Vue({
            el : "#app",
            data : {
                //有没有默认值是根据业务来的
                inputMsg: '',
                mutipleMsg: '',
                sexMsg: '',
                checked:false,
                multipleChe:['羽毛球'],//绑定一个数组就会和上面的复选框对应,默认为羽毛去,就会把羽毛球勾选上
            }
        })
    </script>

效果如下:

 当vmodel绑定单个下拉框的时候,如果定义了value,则vmodel中绑定的值跟着value,否则跟着select中的值,如下:

        <select v-model="selected">
            <option value="3">A</option>
            <option value="2">B</option>
            <option value="1">C</option>
        </select>
<script>
        let vm = new Vue({
            el : "#app",
            data : {
                //有没有默认值是根据业务来的
                inputMsg: '',
                mutipleMsg: '',
                sexMsg: '',
                checked:false,
                multipleChe:['羽毛球'],//绑定一个数组就会和上面的复选框对应
                selected:'2',//selected中定义的值默认为2,那么就会默认选中了B
            }
        })
    </script>

效果如下:

 当下拉框为多选时,需要绑定的是数组,如下:

        <select multiple v-model="multipleSelected" style="width: 150px;">
            <option value="3">A</option>
            <option value="2">B</option>
            <option value="1">C</option>
        </select>
        <p>选择的是{{multipleSelected}}</p>

    <script>
        let vm = new Vue({
            el : "#app",
            data : {
                //有没有默认值是根据业务来的
                inputMsg: '',
                mutipleMsg: '',
                sexMsg: '',
                checked:false,
                multipleChe:['羽毛球'],//绑定一个数组就会和上面的复选框对应
                selected:'2',
                multipleSelected:[]//下拉框多选绑定的数组
            }
        })
    </script>

效果如下:

 

 

posted @ 2024-08-15 10:35  洛飞  阅读(17)  评论(0编辑  收藏  举报