vue?動態(tài)添加el-input的實現(xiàn)邏輯
更新時間:2022年06月30日 16:49:59 作者:一起加油
這篇文章主要介紹了vue?動態(tài)添加el-input的實現(xiàn)代碼,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、效果圖

二、實現(xiàn)邏輯
- 將需要動態(tài)添加的表單項項的綁定值存為一個數(shù)組
- 以循環(huán)的方式展示form表單
- 點擊`+`按鈕觸發(fā)事件,向數(shù)組中新加一個item
- 點擊`-`按鈕觸發(fā)事件,根據(jù)循環(huán)的得到的index來刪除數(shù)組中相對應位置的item三、代碼實現(xiàn)
<template>
<div>
<el-button @click="isDilogShow = true" plain>動態(tài)添加input</el-button>
<el-dialog
title="特工安排"
:visible.sync="isDilogShow"
:close-on-click-modal="false"
width="400px"
>
<el-form ref="form" :model="form">
<el-form-item>
<div v-for="(item, index) in List" :key="index" class="content">
<el-form-item>
<el-input
class="numrule"
type="number"
style="max-width: 130px"
v-model.number="item.num"
placeholder="請輸入代號"
@input="
(val) => {
handleNumChange(val, index)
}
"
></el-input>
<span>搭檔為</span>
<el-select
v-model="item.name"
placeholder="請選擇"
style="max-width: 130px"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
<!-- 若表單中沒有值則不可以新增item(可根據(jù)自己的需求進行更改哦) -->
<span
v-if="index === 0"
:class="
item.num === null || item.name === ''
? 'change-icon-add'
: 'change-icon'
"
><i
:style="{
pointerEvents:
item.num === null || item.name === '' ? 'none' : 'auto',
}"
class="el-icon-circle-plus-outline"
@click="addItem()"
></i
></span>
<span v-else class="change-icon" @click="deleteItem(index)"
><i class="el-icon-remove-outline"></i
></span>
</el-form-item>
</div>
</el-form-item>
<el-form-item style="text-align: right;">
<el-button @click="isDilogShow = false">取消</el-button>
<el-button type="primary" @click="onSubmit">確認</el-button>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template><script>
export default {
name: "About",
data() {
return {
isDilogShow: false,
form: {
name: "",
},
List: [{ num: "", name: "" }],
userList: [
{ id: 1, name: "麻雀" },
{ id: 2, name: "夜鶯" },
{ id: 3, name: "百靈" },
],
}
},
methods: {
handleNumChange(v, i) {
console.log(v)
console.log(i)
},
onSubmit() {
console.log("submit!")
},
// 新增任務分配
addItem() {
this.List.push({
num: "",
name: "",
})
},
deleteItem(i) {
this.List.splice(i, 1)
},
},
}
</script><style lang="scss">
.content {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
span{
margin: 0 8px;
}
.change-icon {
font-size: 26px;
cursor: pointer;
}
// 點擊事件是否可用 ----> pointer-events:none;
.change-icon-add {
font-size: 26px;
cursor: no-drop;
}
}
.numrule {
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
/* Firefox瀏覽器 */
input[type="number"] {
-moz-appearance: textfield;
}
}
</style>到此這篇關于vue 動態(tài)添加el-input的文章就介紹到這了,更多相關vue 動態(tài)添加el-input內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關文章
vue.js過濾器+ajax實現(xiàn)事件監(jiān)聽及后臺php數(shù)據(jù)交互實例
這篇文章主要介紹了vue.js過濾器+ajax實現(xiàn)事件監(jiān)聽及后臺php數(shù)據(jù)交互,結合實例形式分析了vue.js前臺過濾器與ajax后臺數(shù)據(jù)交互相關操作技巧,需要的朋友可以參考下2018-05-05
詳解Vue.js搭建路由報錯 router.map is not a function
這篇文章主要介紹了詳解Vue.js搭建路由報錯 router.map is not a function,非常具有實用價值,需要的朋友可以參考下2017-06-06
Vue2與Vue3如何利用install自定義全局確認框組件編寫
這篇文章主要介紹了Vue2與Vue3如何利用install自定義全局確認框組件編寫方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

