Vue第八天(表单)

准备步骤如同第一天

代码:(测试注意事项:js中的代码依次开启测试,不可全部开启,会报错)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../node_modules/vue/dist/vue.js"></script>
    <script src="../node_modules/vue-resource/dist/vue-resource.js"></script>
</head>
<body>
<!--v-model 实现双向数据绑定-->
<div id="app1">
    <p>input元素:</p>
    <input v-model="message" placeholder="测试V-Model">
    <p>消息是:{{message}}</p>

    <p>text元素:</p>
    <p style="white-space: pre">{{message2}}</p>
    <textarea v-model="message2" placeholder="测试Text"></textarea>
</div>
<br>

<!--复选框的双向数据绑定-->
<div id="app2">
    <p>单个复选框</p>
    <input type="checkbox" id="checkbox" v-model="checked">
    <label for="checkbox">{{ checked }}</label>

    <p>多个复选框</p>
    <input type="checkbox" id="ceshi1" value="ceshi1" v-model="checkedNames">
    <label for="ceshi1">测试一下</label>

    <input type="checkbox" id="ceshi2" value="ceshi2" v-model="checkedNames">
    <label for="ceshi2">测试俩下</label>

    <input type="checkbox" id="ceshi3" value="ceshi3" v-model="checkedNames">
    <label for="ceshi3">测试三下</label>
    <br>
    <span>选择的值为:{{checkedNames}}</span>

</div>
<br>

<!--单选按钮的双向数据绑定-->
<div id="app3">
    <p>单选框</p>
    <input type="radio" id="checkbox2" value="checkbox2" v-model="picked">
    <label for="checkbox2">测试一下</label>
    <br>
    <input type="radio" id="checkbox3" value="checkbox3" v-model="picked">
    <label for="checkbox3">测试俩下</label>
    <br>
    <span>选中的值为:{{picked}}</span>
</div>
<br>

<!--下拉列表的双向数据绑定-->
<div id="app4">
    <select v-model="selected" name="ceshi">
        <option value="">选择网站</option>
        <option value="www.ceshi1.com">测试 一下</option>
        <option value="www.ceshi2.com">测试俩下</option>
    </select>

    <div id="output">
        选择的网站是:{{selected}}
    </div>
</div>
<br>

<!--修饰符-->
<!-- 在 "change" 而不是 "input" 事件中更新 -->
<input v-model.lazy="msg">
<!--自动将用户的输入值转为 Number 类型-->
<input v-model.number="age" type="number">
<!--自动过滤用户输入的首尾空格-->
<input v-model.trim="msg">
<br>

<!--全选-->
<div id="app5">
    <p>
        全选:
    </p>
    <input type="checkbox" id="checkbox4" v-model="checked" @change="changeAllChecked()">
    <label for="checkbox">
        {{checked}}
    </label>
    <p>
        多个复选框:
    </p>
    <input type="checkbox" id="runoob" value="Runoob" v-model="checkedNames">
    <label for="runoob">
        Runoob
    </label>
    <input type="checkbox" id="google" value="Google" v-model="checkedNames">
    <label for="google">
        Google
    </label>
    <input type="checkbox" id="taobao" value="Taobao" v-model="checkedNames">
    <label for="taobao">
        taobao
    </label>
    <br>
    <span>
		选择的值为:{{checkedNames}}
	</span>
</div>
</body>
<script>
    /*v-model 实现双向数据绑定*/
    /*   new Vue({
           el:'#app1',
           data:{
               message:'ceshi',
               message2:'ceshi2'
           }
       })*/

    /*复选框的双向数据绑定*/
    /*    new Vue({
            el: '#app2',
            data: {
                checked: false,
                checkedNames: []
            }
        })*/

    /*复选框的双向数据绑定*/
    /*    new Vue({
            el: '#app3',
            data: {
                picked: '初始为空'
            }
        })*/

    /*下拉列表的双向数据绑定*/
    /*    new Vue({
            el:'#app4',
            data:{
                selected:''
            }
        })*/

    /*全选与取消全选*/
    new Vue({
        el: '#app5',
        data: {
            checked: false,
            checkedNames: [],
            checkedArr: ["Runoob", "Taobao", "Google"]
        },
        methods: {
            changeAllChecked: function () {
                if (this.checked) {
                    this.checkedNames = this.checkedArr
                } else {
                    this.checkedNames = []
                }
            }
        },
        watch: {
            "checkedNames": function () {
                if (this.checkedNames.length == this.checkedArr.length) {
                    this.checked = true
                } else {
                    this.checked = false
                }
            }
        }
    })
</script>
</html>

猜你喜欢

转载自blog.csdn.net/qq_31051117/article/details/83994356