vue3+elementPlus?table中添加輸入框并提交校驗(yàn)

<template>
<div>
<el-form :model="info" ref="forms">
<el-table
ref="tableRef"
:data="info.data"
border>
<el-table-column align="center" property="name" label="*姓名">
<template #default="row">
<el-form-item :prop="'data.' + row.$index + '.name'" :rules="formRules.name">
<el-input placeholder="請(qǐng)輸入姓名" v-model="info.data[row.$index].name" />
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" property="role" label="角色">
<template #default="row">
<el-form-item :prop="'data.' + row.$index + '.role'" :rules="formRules.role">
<el-input placeholder="請(qǐng)輸入角色" v-model="info.data[row.$index].role" />
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
<el-button type="primary" @click="submitForm()">Submit</el-button>
</div>
</template><script setup lang="ts">
import {ref, reactive} from 'vue'
import type { FormInstance } from 'element-plus'
let info:any = reactive({
data:[
{
id: 0,
name: '',
role:''
},{
id: 1,
name: '',
role:''
}
]
})
const formRules = reactive({
name: [{ required: true, message: '請(qǐng)輸入姓名', trigger: 'change' }],
role: [{ required: true, message: '請(qǐng)輸入角色', trigger: 'change' }]
})
const forms = ref<FormInstance>()
const submitForm = async () => {
if (!forms) return
return await forms.value?.validate((valid: any) => {
if (valid) {
console.log('submit!')
} else {
console.log('error submit!')
return false
}
})
}
</script>擴(kuò)展:vue3+elementPlus table里添加輸入框并提交校驗(yàn)

<template>
<div style="display: flex; align-items: center">
<h3 style="margin-right: 20px">成員信息</h3>
</div>
<el-form :model="info" ref="forms">
<el-table
:data="info.membersList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序號(hào)" width="55" />
<el-table-column label="成員號(hào)碼" prop="userNumber">
<template #default="row">
<el-form-item
:prop="'membersList.' + row.$index + '.userNumber'"
:rules="formRules.userNumber"
>
<el-input
placeholder="請(qǐng)輸入成員號(hào)碼"
v-model="info.membersList[row.$index].userNumber"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="機(jī)頂盒側(cè)mac" prop="age">
<template #default="row">
<el-form-item
:prop="'membersList.' + row.$index + '.macCode'"
:rules="formRules.macCode"
>
<el-input
placeholder="請(qǐng)輸入機(jī)頂盒側(cè)mac"
v-model="info.membersList[row.$index].macCode"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="機(jī)頂盒stbid" prop="snCode">
<template #default="row">
<el-form-item
:prop="'membersList.' + row.$index + '.snCode'"
:rules="formRules.snCode"
>
<el-input
placeholder="請(qǐng)輸入機(jī)頂盒stbid"
v-model="info.membersList[row.$index].snCode"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="電視賬號(hào)" prop="tvAccount">
<template #default="row">
<el-form-item
:prop="'membersList.' + row.$index + '.tvAccount'"
:rules="formRules.tvAccount"
>
<el-input
placeholder="請(qǐng)輸入電視賬號(hào)"
v-model="info.membersList[row.$index].tvAccount"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="備注(如房間號(hào))" prop="remark">
<template #default="row">
<el-form-item
:prop="'membersList.' + row.$index + '.remark'"
:rules="formRules.remark"
>
<el-input
placeholder="請(qǐng)輸入備注(如房間號(hào))"
v-model="info.membersList[row.$index].remark"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="操作">
<template #default="row">
<el-form-item :prop="'membersList.' + row.$index + '.oprcode'">
<el-select
placeholder="請(qǐng)選擇操作類型"
style="margin-right: 10px"
v-model="info.membersList[row.$index].oprcode"
>
<el-option label="添加" value="01" />
<el-option label="刪除" value="02" />
</el-select>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
</template><script setup name="index" lang="ts">
import {
Search,
Plus,
Upload,
Minus,
Download,
} from '@element-plus/icons-vue'
import type { FormInstance } from 'element-plus'
const { proxy } = getCurrentInstance()
let info: any = reactive({
membersList: [],
})
const formRules = reactive({
userNumber: [
{ required: true, message: '請(qǐng)輸入成員號(hào)碼', trigger: 'blur' },
],
macCode: [
{ required: true, message: '請(qǐng)輸入機(jī)頂盒側(cè)mac', trigger: 'blur' },
],
snCode: [{ required: true, message: '請(qǐng)輸入機(jī)頂盒stbid', trigger: 'blur' }],
})
const forms = ref<FormInstance>()
const save = async () => {
if (!forms) return
await forms.value?.validate((valid: any) => {
if (valid) {
}
})
}
</script>到此這篇關(guān)于vue3+elementPlus table里添加輸入框并提交校驗(yàn)的文章就介紹到這了,更多相關(guān)vue3 elementPlus table輸入框校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用element-ui table expand展開行實(shí)現(xiàn)手風(fēng)琴效果
這篇文章主要介紹了使用element-ui table expand展開行實(shí)現(xiàn)手風(fēng)琴效果,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
vue.js前后端數(shù)據(jù)交互之提交數(shù)據(jù)操作詳解
這篇文章主要介紹了vue.js前后端數(shù)據(jù)交互之提交數(shù)據(jù)操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了vue.js前后端數(shù)據(jù)交互相關(guān)的表單結(jié)構(gòu)、約束規(guī)則、數(shù)據(jù)提交等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-04-04
vue3中使用vuex和vue-router的詳細(xì)步驟
這篇文章主要介紹了vue3中使用vuex和vue-router的步驟,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
Vue中正確使用Element-UI組件的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Vue中正確使用Element-UI組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
深入理解vue輸入框字符限制的優(yōu)化設(shè)計(jì)方案
限制輸入框字符是一項(xiàng)需要結(jié)合技術(shù)實(shí)現(xiàn)與用戶體驗(yàn)的綜合設(shè)計(jì),通過實(shí)時(shí)限制、提交校驗(yàn)與性能優(yōu)化,開發(fā)者可以高效解決輸入限制問題,同時(shí)提升用戶滿意度和數(shù)據(jù)安全性,本文給大家介紹vue輸入框字符限制的優(yōu)化設(shè)計(jì),感興趣的朋友跟隨小編一起看看吧2024-12-12
Vue + element 實(shí)現(xiàn)多選框組并保存已選id集合的示例代碼
這篇文章主要介紹了Vue + element 實(shí)現(xiàn)多選框組并保存已選id集合,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

