用vue手写input 批量新增 框

列:实现效果

图(1)

 图(2)

<template>
    <div>
        <button class="btn" @click="addInp">添加input</button>
        <div v-for="(item, index) in inpList" :key="index">
            <input class="inp" type="text" placeholder="姓名" v-model="from.userName">
            <input class="inp" type="text" placeholder="性别" v-model="from.userSex">
            <input class="inp" type="text" placeholder="年龄" v-model="from.userAge">
            <input class="inp" type="text" placeholder="学历" v-model="from.userSchools">
            <!-- 里面不止可以添加input 框还可以添加其他元素 -->
            <button class="btn" @click="delInp(item.id)">删除一组</button>
        </div>
    </div>
</template>

<script>
export default {
    data() {
        return {
            inpList: [""],
            dataList: [],
            from: {
                userName: "",
                userSex: "",
                userAge: "",
                userSchools: ""
            }
        }
    },
    methods: {
        // 添加(新增) input 框方法
        addInp() {
            // 当数量(input数组)超过10个时提示
            if (this.inpList.length >= 10) {
                alert("最多只能加10个哦");
                return;
            } else {
                //添加input 框
                this.inpList.push("")
            }
        },
        //删除(input框)方法 获取到下标 id
        delInp(id) {
            // 当他的数量为 1 时不可删除
            if (this.inpList.length <= 1) {
                return;
            } else {
                // 利用findIndex 数组的循环,查找到符合条件的索引并且打断循环返回找到的索引值 再利用 splice 方法进行删除
                let index = this.inpList.findIndex(obj => obj.index === id);
                this.inpList.splice(index, 1);
            }
        }
    },
    //初始化挂载让删除按钮隐藏 只有超过下标时 显示
    mounted() {
        document.getElementsByClassName("btn")[1].style.display = "none";
    }
}
</script>

<style>
/* css样式可以忽略 */
.inp {
    outline: none;
    font-size: 15px;
    margin-left: 5px;
    margin-top: 15px;
    color: #000000;
    border-radius: 5px;
    padding: 10px 10px;
    border: 2px solid #e3e3e3;
}

.inp:focus {
    border: 2px solid #7fffd4;
    box-shadow: inset 1px 5px 16px 10px rgba(237, 172, 172, 0.5), 1px 5px 16px 10px rgba(237, 172, 172, 0.5);
}

.btn {
    width: 75px;
    border: 0px;
    height: 30px;
    font-size: 14px;
    color: #fff;
    line-height: 30px;
    margin-left: 15px;
    border-radius: 10px;
    transition: all .3s;
    background-color: #00a2ff;
}

.btn:hover {
    color: #fff;
    transition: all .3s;
    background-color: #ff0000;
}
</style>

希望能帮助到各位小伙伴

        记得点赞收藏哦 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值