成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

餓了么組件庫element-ui正則表達式驗證表單,后端驗證表單。

0x584a / 2268人閱讀

摘要:要顯示的錯誤提示則可以即可。寫在最后的以上三點已經(jīng)完全覆蓋了所有表單驗證的情況,可以實現(xiàn)非常復(fù)雜的驗證。正式基于這些原因,我堅信是正確的選擇。

前言

老是遇到一些朋友問一些element-ui組件使用相關(guān)的基礎(chǔ)問題,因為官方文檔上并沒有提供所有瑣碎的功能代碼demo。從這里開始我會根據(jù)我實際遇到的問題記錄一些常見的官方文檔沒有詳述的功能代碼,供給大家拓展思路。

1. 以中國大陸手機號驗證為例

// 這是組價的代碼

    


// 這是rules的代碼
mobile: [
    { validator: validateMobile, trigger: "blur" },
    { required: true, message: "請輸入手機號", trigger: "blur" },
    { pattern: /^1[34578]d{9}$/, message: "目前只支持中國大陸的手機號碼" }
],

在element-ui的源碼中搜索blur,你會很容易看到除了blur 還有focus、input,非常貼心基本滿足了表單驗證的入門需求。

2. 表單局部提交后端驗證

在一些輸入項目較多的表單提交中,比如說注冊時填寫的用戶名,通常我們會對用戶名是否重復(fù)進行驗證,這是就需要調(diào)用服務(wù)來驗證,這種略顯復(fù)雜的驗證,就需要自定義驗證規(guī)則來實現(xiàn)??聪旅娴拇a:

// 注意validatePass是屬于data的,但不在return中。
data () {
let validatePass = (rule, value, callback) => {
    if (value.length >= 8) {
                let params = {
                    "account": value
                }
                axios.post("localhost:8080/verifyUserAccount", params)
                .then(function (response) {
                    if (response.data.err) {
                        callback(response.data.msg)
                    } else {
                        callback()
                    }
                })
                .catch(function () {
                    callback(new Error("服務(wù)異常"))
                })
            } else {
                callback()
            }
}

//這是驗證規(guī)則,當(dāng)然了你也可以同時使用基本的驗證規(guī)則
account: [
    { validator: validatePass , trigger: "blur" }
]

注意:validatePass 自定義規(guī)則中每個執(zhí)行流程中都必須附帶callback(),這樣才能明確通過驗證的情況下去掉輸入框上的loading。要顯示的錯誤提示則可以new Error(“xxxx”)即可。

3. 綜合來看

通??梢园阉幸?guī)則都寫在自定義的規(guī)則中,即可實現(xiàn)較為復(fù)雜的驗證,實際上我們可以再validatePass里面調(diào)用根實例下所有data methods...,一個很簡單的例子是實現(xiàn)兩次輸入的密碼是否相同的驗證,看下面的代碼:

let validatePass = (rule, value, callback) => {
            if (value === "") {
                callback(new Error("請再次輸入密碼"))
            } else if (value !== this.ruleForm.password) {
                callback(new Error("兩次輸入密碼不一致!"))
            } else {
                callback()
            }
        }

就這么簡單就可以實現(xiàn)非vuejs情況下是非啰嗦的驗證。而且樣式也不會很丑,當(dāng)然了任然可以選擇自定義樣式。這個以后再記錄。

4. 寫在最后的

以上三點已經(jīng)完全覆蓋了所有表單驗證的情況,可以實現(xiàn)非常復(fù)雜的驗證。正式基于這些原因,我堅信element-ui是正確的選擇。我將會繼續(xù)寫一些剪短的文章補充文檔的遺漏。同時如果你也跟我一樣喜歡element-ui歡迎跟我探討,我們新建了一個qq群478694438![圖片描述][1],方便大家交流。最后喊一下口號:不拘泥于原理,完全立足于實現(xiàn)!

5. 另
文中涉及到的源碼我將會上傳到討論群中,不足之處持續(xù)更進,共同探討。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88463.html

相關(guān)文章

  • 了么組件element-ui開發(fā)精美的后臺管理系統(tǒng)系列之(一)開發(fā)伸縮菜單

    摘要:先看這個值即為判斷顯示展開還是收縮狀態(tài)的開關(guān)。這樣就實現(xiàn)了展開狀態(tài)下的菜單。如果有時間的話,我會把這個系列寫完,知道朋友們能獨立開發(fā)一個完整的的單頁面后臺管理程序。 涉及到路由,權(quán)限等等相關(guān)內(nèi)容的部分,跟本文主旨關(guān)系不大,所以我將會在另外一篇文章中詳述,混在一起的話內(nèi)容太多了 基于element-ui的左側(cè)可伸縮的菜單通過vuejs來開發(fā)支持展開收縮的菜單是非常簡單的,只需要v-i...

    whlong 評論0 收藏0
  • 前端窩 - 收藏集 - 掘金

    摘要:毫無疑問,設(shè)計模式于己于他人于系統(tǒng)都是多贏的設(shè)計模式使代碼編寫真正工程化設(shè)計模小書前端掘金這是一本關(guān)于的小書。 JavaScript 常見設(shè)計模式解析 - 掘金設(shè)計模式(Design pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)。使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。毫無疑問,設(shè)計模式于己于他人于系統(tǒng)都是多贏的;設(shè)計...

    李文鵬 評論0 收藏0
  • 自定義表單生成器form-create v2介紹

    摘要:介紹是一個可以通過生成具有動態(tài)渲染數(shù)據(jù)收集驗證和提交功能的表單生成器。并且支持生成任何組件。結(jié)合內(nèi)置種常用表單組件和自定義組件,再復(fù)雜的表單都可以輕松搞定。 介紹 form-create 是一個可以通過 JSON 生成具有動態(tài)渲染、數(shù)據(jù)收集、驗證和提交功能的表單生成器。并且支持生成任何 Vue 組件。結(jié)合內(nèi)置17種常用表單組件和自定義組件,再復(fù)雜的表單都可以輕松搞定。 文檔 | git...

    lufficc 評論0 收藏0
  • VUE UI框架對比 element-ui 與 iView

    摘要:而則是用到到指令結(jié)合的方式去生成,批量生成元素。表格操作列自定義渲染的時,使用的是的函數(shù),直接在中插入對應(yīng)模板表格分頁都需要引入分頁組件配合使用兩者總體比較,要比簡潔許多。 element VS iview(最近項目UI框架在選型 ,做了個分析, 不帶有任何利益相關(guān))主要從以下幾個方面來做對比使用率(npm 平均下載頻率,組件數(shù)量,star, issue…)API風(fēng)格打包優(yōu)化與設(shè)計師友...

    ZHAO_ 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<