vue如何双向绑定v-for循环出来的input文本框

一、先说下需求

  • 给所有的题打分,并最终打印最终打的分数
  • 要用vue实现,这是我用vue的最重要的一点,用着简单!!!

二、下面看具体实现方法

  • 直接看代码实现
  • 修改文本框的分数,也会自动同步到list中
  • 最后直接打印list即可
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    <title>vue如何双向绑定v-for循环出来的input文本框</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.js"></script>
    <style type="text/css">
        span {
            padding-right: 10px;
        }
        input {
            text-align: center;
            width: 50px;
        }
    </style>
</head>
<body>
<div class="" id="app">
    <p v-for="(item,key) in list">
        <span>{{key}}</span>
        <input :name="item.name" v-model="item.score"/>
        <label>分</label>
    </p>
    <p>
        <button type="button" @click="submit">打印题所有信息</button>
    </p>
</div>
</body>
<script type="text/javascript">
    var app = new Vue({
        el: '#app',
        data: {
            list: {
                '第1题': {name: '第1题', score: '0', type: '客观题'},
                '第2题': {name: '第2题', score: '0', type: '客观题'},
                '第3题': {name: '第3题', score: '0', type: '主观题'}
            }
        },
        methods: {
            submit: function () {
                for (var key in this.list) {
                    var item = this.list[key];
                    console.log(JSON.stringify(item))
                }
            }
        }
    })
</script>
</html>


评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×