<script src='../vue.js' type='text/javascript' charset='utf-8'></script>
<div id='app'>
    <form>
        <label>班级:</label>
        <input type='text' v-model='newStudent.grade'>
        <label>姓名:</label>
        <input type='text' v-model='newStudent.name'>
        <label>性别:</label>
        <input type='text' v-model='newStudent.gender'>
        <label>年龄:</label>
        <input type='text' v-model='newStudent.age'>
        <button type='button' @click.prevent='addStudent'>添加学生</button>
        <button type='button' @click.prevent='updateStudent'>确认修改</button>
        <button type='button' @click.prevent='reset'>重置表单</button>
    </form>
    <table border='1' width='50%' style='border-collapse: collapse;'>
        <tr>
            <th>班级</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>操作</th>
        </tr>
        <tr align='center' v-for='(item, index) in students'>
            <td>{{item.grade}}</td>
            <td>{{item.name}}</td>
            <td>{{item.gender}}</td>
            <td>{{item.age}}</td>
            <td>
                <button type='button' @click.prevent='editStudent(index)'>修改</button>
                <button type='button' @click.prevent='delStudent(index)'>删除</button>
            </td>
        </tr>
    </table>
</div>
<script type='text/javascript'>
    let vm = new Vue({
        el: '#app',
        data: {
            students: [],
            newStudent: {
                grade: '',
                name: '',
                gender: '',
                age: ''
            },
            selectedIndex: null
        },
        methods: {
            addStudent() {
                this.students.push(this.newStudent);
                this.reset();
            },
            updateStudent() {
                if (this.selectedIndex === null) {
                    alert('请先选择要修改的学生!');
                } else {
                    this.students.splice(this.selectedIndex, 1, this.newStudent);
                    this.reset();
                }
            },
            editStudent(index) {
                this.newStudent = Object.assign({}, this.students[index]);
                this.selectedIndex = index;
            },
            delStudent(index) {
                this.students.splice(index, 1);
            },
            reset() {
                this.newStudent = {
                    grade: '',
                    name: '',
                    gender: '',
                    age: ''
                };
                this.selectedIndex = null;
            }
        }
    });
</script>

原文地址: https://www.cveoy.top/t/topic/nQtS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录