網(wǎng)站首頁 編程語言 正文
element中對el-input 自定義驗證規(guī)則
首先明確要使自定義校驗生效的話,必須 prop 和 rules 的 鍵對應,如示例:(prop="description"在 rules 中有對應的鍵 )
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="140px" class="demo-ruleForm">
<el-form-item label="描述:" prop="description">
<el-input type="textarea" v-model="ruleForm.description" maxLengtn="128" placeholder="請輸入描述"></el-input>
</el-form-item>
</el-form>
rules: {
description: [{ required: true, message: '請輸入描述', trigger: 'blur' }]
}
自定義校驗傳入自定義參數(shù)
elementui的自定義校驗不能傳入自定義參數(shù),如果想傳入自定義參數(shù)的話,可以如下操作:
rules: {
description: [{
validator: (rule, value, callback) => {
this.validateType(rule, value, callback, this.params)
},
trigger: ['blur', 'change']
}]
}
this.params
相當于自定義參數(shù),然后 this.validateType
中就可以接收到自定義的參數(shù),并且也能對輸入框的值進行校驗了。
示例:驗證一個輸入框的值的類型,這個值的類型可能是['list', 'num', 'bool', 'str']
中的一種或多種,但如果為 list
的話就只能是 list
類型
// 數(shù)據(jù)類型有 ['list', 'num', 'bool', 'str']
// 一個輸入框的數(shù)據(jù)類型的情況可能有
// 情況一:數(shù)據(jù)類型為 ['list'],那輸入值的數(shù)據(jù)類型就可能都滿足,就返回 true,最后將輸入框中的值用 split(',')轉為數(shù)組類型即可
// 情況二:數(shù)據(jù)類型為 ['num', 'bool', 'str'],那輸入的值比如 12/true/'abc',用 typeof value 判斷輸入的數(shù)據(jù)類型
// let allTypes = ['list', 'num', 'bool', 'str']
/**
* @param {*} arr 輸入框的數(shù)據(jù)類型
* @param {*} value 輸入框的值
*/
function checkType (arr, value) {
if (arr.includes('list') && arr.length === 1) { // 還不確定
return true
} else {
// el-input 得到的值為字符串,所以需要處理,'1', 'true', '是', 0/1,使用 JSON.parse(value) 可以將對應類型的值轉換,如果 JSON.parse('abc') 會直接報錯
try {
value = JSON.parse(value)
} catch (error) {
// 字符串不做處理
}
if (['是', '否'].includes(value)) {
value = value === '是'
}
return arr.some(item => {
return (typeof value).indexOf(item) !== -1
})
}
}
console.log(checkType(['num', 'str', 'bool'], 'abc'))
原文鏈接:https://blog.csdn.net/qq_38157825/article/details/121354184
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-05-15 Element框架里日期選擇器限制時間,最多選31天
- 2022-01-19 iview-admin 富文本編輯器(wangEditor)菜單無法選中解決方案
- 2022-12-08 html5自動播放mov格式視頻
- 2024-03-23 如何保證Redis和數(shù)據(jù)庫數(shù)據(jù)一致性
- 2022-07-10 elementUI去掉el-card內部padding
- 2022-05-14 InnoDB主鍵索引樹和二級索引樹的場景分析_數(shù)據(jù)庫其它
- 2022-11-13 一文詳解Go語言單元測試的原理與使用_Golang
- 2022-04-21 Android實現(xiàn)水波紋效果實例代碼_Android
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支