国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue3 element-plus表單嵌套表格實現(xiàn)動態(tài)表單驗證

這篇具有很好參考價值的文章主要介紹了Vue3 element-plus表單嵌套表格實現(xiàn)動態(tài)表單驗證。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Vue3結合element-plus表單項可以動態(tài)添加/刪除

部分效果圖如下:
Vue3 element-plus表單嵌套表格實現(xiàn)動態(tài)表單驗證,Vue,vue.js,javascript,ecmascript

另表格有添加和刪除按鈕,點擊提交進行表單驗證。

  1. 首先data格式必須是對象包裹數(shù)組
import { ref, reactive } from 'vue';
import { FormInstance } from 'element-plus'
const froms = ref<FormInstance>()
const form = ref({
    tableData: <any>[]
})
  1. 給表單綁定form數(shù)據(jù)
<el-form ref="forms" :model="form">
</el-form>
  1. 表格綁定tableData數(shù)據(jù)
<el-table :data="form.tableData" border style="width: 100%">
</el-table>
  1. 給表單項增加驗證規(guī)則
<el-table-column label="身份證號" align="center" show-overflow-tooltip>
    <template #default="{ row, $index }">
        <el-form-item :prop="`tableData.${$index}.cardId`" :rules="rules.cardId">
            <el-input size="large" v-model="row.cardId" class="wih-150p" placeholder="請輸入身份證號" />
        </el-form-item>
    </template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="100px">
   <template #default="{ row, $index }">
        <el-button text type="danger" @click="delEdit($index, row)">刪除</el-button>
    </template>
</el-table-column>
 <el-button size="large" type="primary" @click="subHandle(froms)">
    提交
 </el-button>

rules對應data rules對象,prop對應表單字段(注意是表格里每一行對應的字段 forms.tableData[下標].key)
prop的關鍵就在于下標 $index

  1. 部分驗證規(guī)則
import { FormRules } from 'element-plus'
const rules = reactive<FormRules>({
    cardId: [
        { required: true, message: "請輸入身份證號", trigger: "blur" },
        { pattern: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, message: '請輸入正確的身份證號', trigger: 'blur' }
    ],
    professional: [
        { required: true, message: "請輸入從事專業(yè)", trigger: "blur" },
    ],
    months: [
        { required: true, message: "請輸入投入時間", trigger: "blur" },
        { pattern: /^[1-9]\d*$/, message: '請輸入正確的月份', trigger: 'blur' }
    ],
    phone: [
        { required: true, message: "請輸入聯(lián)系電話", trigger: "blur" },
        { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '請輸入正確的手機號碼', trigger: 'blur' }
    ],
    email: [
        { required: true, message: "請輸入郵箱", trigger: "blur" },
        {
            type: 'email',
            message: '請輸入正確的郵箱格式',
            trigger: ['blur', 'change'],
        },
    ],
     cost: [
        { required: true, message: "請輸入金額", trigger: "blur" },
        { pattern: /^[1-9]\d*(\.\d+)?$/, message: '請輸入正確的金額', trigger: 'blur' }
    ]
});
前端Vue中常用rules校驗規(guī)則:

1、是否合法IP地址:

pattern:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,

2.是否手機號碼或者固話
pattern:/^((0\d{2,3}-\d{7,8})|(1[345789]\d{9}))$/,

3. 是否身份證號碼
pattern:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,

4.是否郵箱
pattern:/^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/,

5.整數(shù)填寫
pattern:/^-?[1-9]\d*$/,

6.正整數(shù)填寫
pattern:/^[1-9]\d*$/,

7.小寫字母
pattern:/^[a-z]+$/,

8.大寫字母
pattern:/^[A-Z]+$/,

9.大小寫混合
pattern:/^[A-Za-z]+$/,

10.多個8位數(shù)字格式(yyyyMMdd)并以逗號隔開
pattern:/^\d{8}(\,\d{8})*$/,

11.數(shù)字加英文,不包含特殊字符
pattern:/^[a-zA-Z0-9]+$/,

12.前兩位是數(shù)字后一位是英文
pattern:/^\d{2}[a-zA-Z]+$/,

13.密碼校驗(6-20位英文字母、數(shù)字或者符號(除空格),且字母、數(shù)字和標點符號至少包含兩種)
pattern:/^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/,

14.中文校驗
pattern:/^[\u0391-\uFFE5A-Za-z]+$/,
inputed: /[^\d]/g //只能輸入數(shù)字
inputed: /[^a-zA-Z]/g //只能輸入英文
inputed: /[^\d\x\X]/g //只能輸入數(shù)字和英文/[\W]/g
inputed: /[^\u4E00-\u9FA5]/g //只能輸入中文
inputed: /[\u4E00-\u9FA5]/g //輸入非中文字符
inputed: /^[a-zA-Z0-9_]{1,}$/ //僅支持字母數(shù)字下劃線
inputed: /^[1-9]\d*$/ //正整數(shù)
inputed: /^[A-Za-z0-9]{6,7}$/ //輸入的字母數(shù)字長度限制在 6-7
inputed: /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/ //24小時制時間(HH:mm:ss)
inputed: /^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/ //12小時制時間(hh:mm:ss)
inputed: /^(?:(?:\+|00)86)?1\d{10}$/ //中國手機號
inputed: /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/ //郵箱地址
inputed: /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/ //密碼強度正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數(shù)字,1個特殊字符
inputed: /[^A-Za-z0-9\u4e00-\u9fa5]/g //只能輸入數(shù)字,英文及中文

更多正則校驗可查看:vue常用正則表達式

  1. 動態(tài)添加的實現(xiàn)
// 添加人員
const addPerson = () => {
    form.value.tableData.push({
        // 身份證號
        cardId: '',
        // 從事專業(yè)
        professional: '',
        // 投入時間(月)
        months: '',
        // 聯(lián)系電話
        phone: '',
        // 郵箱
        email: ''
    })
}
  1. 表格刪除的實現(xiàn)
// 存儲刪除的數(shù)據(jù)
let delList: any = []
const delEdit = (index: number, row: any) => {
    form.value.tableData.splice(index, 1)
    delList.push(row)
}
  1. 提交時再次驗證
// 提交
const subHandle = async (formEl: FormInstance | any) => {
    if (!formEl) return
    await formEl.validate(async (valid: any) => {
        if (valid) {
	        // 通過校驗調(diào)用接口
	        ...
		}
	}
}

效果展示:
Vue3 element-plus表單嵌套表格實現(xiàn)動態(tài)表單驗證,Vue,vue.js,javascript,ecmascript文章來源地址http://www.zghlxwxcb.cn/news/detail-629643.html

到了這里,關于Vue3 element-plus表單嵌套表格實現(xiàn)動態(tài)表單驗證的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • vue3+element-plus表格默認排序default-sort失效問題

    vue3+element-plus表格默認排序default-sort失效問題

    在使用動態(tài)數(shù)據(jù)渲染的場景,el-table設置默認屬性default-sort失效。 el-table的default-sort屬性是針對靜態(tài)數(shù)據(jù)的,如果是動態(tài)數(shù)據(jù),default-sort則無法監(jiān)聽到。 案例:靜態(tài)數(shù)據(jù) 默認排序正常 案例:模擬動態(tài)數(shù)據(jù)(setTimeout模擬后端延時數(shù)據(jù)返回) 默認排序失效 等待數(shù)據(jù)渲染結束后(n

    2024年02月12日
    瀏覽(32)
  • vue3 - element-plus表格組件el-table實現(xiàn)鼠標拖曳排序功能,vue3 Table表格拖拽排序,表格每行使用鼠標拖動進行排序功能,表格拖拽排序?qū)崿F(xiàn)(詳細示例代碼,一鍵復制開箱即用

    vue3 - element-plus表格組件el-table實現(xiàn)鼠標拖曳排序功能,vue3 Table表格拖拽排序,表格每行使用鼠標拖動進行排序功能,表格拖拽排序?qū)崿F(xiàn)(詳細示例代碼,一鍵復制開箱即用

    在vue3+elementPlus網(wǎng)站開發(fā)中,詳細完成el-table表格的鼠標拖拽/拖曳/拖動排序,vue3使用element plus表格組件進行表格每行的拖動換位置排序功能(支持一鍵開啟和關閉鼠標是否可拖動排序,代碼易改造靈活),稍加改造可支持【樹形復雜表格的排序】! 詳細示例源代碼,復制運行

    2024年04月09日
    瀏覽(35)
  • vue3+element-plus點擊列表中的圖片預覽時,圖片被表格覆蓋

    vue3+element-plus點擊列表中的圖片預覽時,圖片被表格覆蓋

    視覺 點擊圖片進行預覽,但還能繼續(xù)選中其他的圖片進行預覽,鼠標放在表格上,那一行表格也會選中,如圖所示第一行的效果。 代碼 官網(wǎng)文檔有這么一個屬性,官網(wǎng)是這個描述的Image屬性。 在 el-image 中加入屬性 preview-teleported=\\\"true\\\" 即可。

    2024年02月13日
    瀏覽(44)
  • vue3+ts+element-plus實際開發(fā)之導出表格和不同類型之間相互賦值

    vue3+ts+element-plus實際開發(fā)之導出表格和不同類型之間相互賦值

    1. 安裝依賴 npm run xlsx 2. 引入,import * as XLSX from “xlsx”; 3. 報錯找不到模塊“xlsx”或其相應的類型聲明 修改成大寫就好了 import * as XLSX from \\\'XLSX\\\' ,如果沒有報提示就直接用 4. 使用導出文件 //---- 導出表 1. 直接用a標簽下載 鼠標移入樣式,點擊自動下載 2. 有特殊數(shù)據(jù)需要解析

    2024年02月15日
    瀏覽(29)
  • vue3+element-plus 表格全選和跨頁勾選,以及全選全部功能

    vue3+element-plus 表格全選和跨頁勾選,以及全選全部功能

    目錄 背景描述 實現(xiàn)效果 詳細開發(fā) 1.模擬數(shù)據(jù)和頁面布局 2.跨頁勾選和點擊勾選功能 3.表頭全選 4. 全選全部 (1)全選后禁用表格勾選(簡單) (2)真正意義上的全選全部(難) 總結 表格的全選、部分勾選、跨頁勾選、本頁全選,這幾個功能,有很多實現(xiàn)的方法,先說如何

    2024年02月07日
    瀏覽(23)
  • vue3+ts+element-plus 之使用node.js對接mysql進行表格數(shù)據(jù)展示

    vue3+ts+element-plus 之使用node.js對接mysql進行表格數(shù)據(jù)展示

    * 初始化node 查看node是否安裝 node -v 初始化命令 npm init 初始化配置解釋如下: 完成后會有一個package.json文件 * 安裝可能用到的依賴 根據(jù)需求安裝,我這里需要對接mysql,安裝依賴 ,我是一次性安裝完,后邊會直接使用,也可以邊安裝邊使用。如下 安裝成功如下: * 配置文件

    2024年02月15日
    瀏覽(52)
  • vue3 element-plus 實現(xiàn)圖片預覽

    vue3 element-plus 實現(xiàn)圖片預覽

    element-plus下有這么一個組件 el-image-viewer /,但是這個組件是沒寫在文檔上面的,像普通組件一樣使用即可 可以通過點擊按鈕實現(xiàn)圖片預覽,而非el-image組件只能通過點擊圖片實現(xiàn)預覽 2.1封裝組件 2.3組件使用 在需要使用的地方引入,然后使用即可,這不是重點,每個人使用的

    2024年02月15日
    瀏覽(28)
  • Vue3+element-plus實現(xiàn)后臺管理系統(tǒng)

    Vue3+element-plus實現(xiàn)后臺管理系統(tǒng)

    ?環(huán)境:node.js軟件 、Vs code、vite、elemnt-plus、windicss(樣式框架) ? ? 1、首先,使用npm 命令構建項目( vscode安裝的插件 vscode中文顯示插件 ? 2、高亮提示插件volar ? 3、vue 3 sni 代碼提示) 快速上手 | Vue.js ? ?a. npm -v 查看node.js 版本 ? ?b. ?npm ?config get registry ? 查看注冊鏡像是

    2024年02月09日
    瀏覽(33)
  • (二) Vue3 + Element-Plus 實現(xiàn)動態(tài)菜單欄

    (二) Vue3 + Element-Plus 實現(xiàn)動態(tài)菜單欄

    系列介紹:Vue3 + Vite + TS 從零開始學習 項目搭建:(一) Vue3 + Vite + TS 項目搭建 實現(xiàn)動態(tài)菜單欄:(二) Vue3 + Element-Plus 實現(xiàn)動態(tài)菜單欄 實現(xiàn)動態(tài)面包屑:(三) Vue3 + Element-Plus 實現(xiàn)動態(tài)面包屑 實現(xiàn)動態(tài)標簽頁:(四) Vue3 + Element-Plus 實現(xiàn)動態(tài)標簽頁 實現(xiàn)動態(tài)主題色切換(demo):(五)

    2023年04月23日
    瀏覽(59)
  • vue+Element UI 實現(xiàn)動態(tài)表單(點擊按鈕增刪表格及嵌套輸入框的增刪)(1)

    vue+Element UI 實現(xiàn)動態(tài)表單(點擊按鈕增刪表格及嵌套輸入框的增刪)(1)

    el-button size=“small” @click=“addTable”新增 el-button size=“small” @click=“delTable”刪除 el-table ref=“table” :data=“tableDataBind.taAssessltems” tooltip-effect=“dark” border @selection-change=“selectRow” 規(guī)格: 重量: 數(shù)量: 加工費: el-button size=“mini” type=“primary” icon=“el-icon-circle-plus-ou

    2024年04月13日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包