iview form表單驗(yàn)證填坑筆記

今天想寫一個(gè)表單校驗(yàn)用戶有沒有填寫內(nèi)容

官方文檔是這樣寫的

<template>
    <i-form v-ref:form-validate :model="formValidate" :rules="ruleValidate" :label-width="80">
        <Form-item label="姓名" prop="name">
            <i-input :value.sync="formValidate.name" placeholder="請(qǐng)輸入姓名"></i-input>
        </Form-item>
        <Form-item label="郵箱" prop="mail">
            <i-input :value.sync="formValidate.mail" placeholder="請(qǐng)輸入郵箱"></i-input>
        </Form-item>
        <Form-item label="城市" prop="city">
            <i-select :model.sync="formValidate.city" placeholder="請(qǐng)選擇所在地">
                <i-option value="beijing">北京市</i-option>
                <i-option value="shanghai">上海市</i-option>
                <i-option value="shenzhen">深圳市</i-option>
            </i-select>
        </Form-item>
        <Form-item label="選擇日期">
            <Row>
                <i-col span="11">
                    <Form-item prop="date">
                        <Date-picker type="date" placeholder="選擇日期" :value.sync="formValidate.date"></Date-picker>
                    </Form-item>
                </i-col>
                <i-col span="2" style="text-align: center">-</i-col>
                <i-col span="11">
                    <Form-item prop="time">
                        <Time-picker type="time" placeholder="選擇時(shí)間" :value.sync="formValidate.time"></Time-picker>
                    </Form-item>
                </i-col>
            </Row>
        </Form-item>
        <Form-item label="性別" prop="gender">
            <Radio-group :model.sync="formValidate.gender">
                <Radio value="male">男</Radio>
                <Radio value="female">女</Radio>
            </Radio-group>
        </Form-item>
        <Form-item label="愛好" prop="interest">
            <Checkbox-group :model.sync="formValidate.interest">
                <Checkbox value="吃飯"></Checkbox>
                <Checkbox value="睡覺"></Checkbox>
                <Checkbox value="跑步"></Checkbox>
                <Checkbox value="看電影"></Checkbox>
            </Checkbox-group>
        </Form-item>
        <Form-item label="介紹" prop="desc">
            <i-input :value.sync="formValidate.desc" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="請(qǐng)輸入..."></i-input>
        </Form-item>
        <Form-item>
            <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
            <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
        </Form-item>
    </i-form></template><script>
    export default {
        data () {            return {
                formValidate: {
                    name: '',
                    mail: '',
                    city: '',
                    gender: '',
                    interest: [],
                    date: '',
                    time: '',
                    desc: ''
                },
                ruleValidate: {
                    name: [
                        { required: true, message: '姓名不能為空', trigger: 'blur' }
                    ],
                    mail: [
                        { required: true, message: '郵箱不能為空', trigger: 'blur' },
                        { type: 'email', message: '郵箱格式不正確', trigger: 'blur' }
                    ],
                    city: [
                        { required: true, message: '請(qǐng)選擇城市', trigger: 'change' }
                    ],
                    gender: [
                        { required: true, message: '請(qǐng)選擇性別', trigger: 'change' }
                    ],
                    interest: [
                        { required: true, type: 'array', min: 1, message: '至少選擇一個(gè)愛好', trigger: 'change' },
                        { type: 'array', max: 2, message: '最多選擇兩個(gè)愛好', trigger: 'change' }
                    ],
                    date: [
                        { required: true, type: 'date', message: '請(qǐng)選擇日期', trigger: 'change' }
                    ],
                    time: [
                        { required: true, type: 'date', message: '請(qǐng)選擇時(shí)間', trigger: 'change' }
                    ],
                    desc: [
                        { required: true, message: '請(qǐng)輸入個(gè)人介紹', trigger: 'blur' },
                        { type: 'string', min: 20, message: '介紹不能少于20字', trigger: 'blur' }
                    ]
                }
            }
        },
        methods: {
            handleSubmit (name) {                this.$refs[name].validate((valid) => {                    if (valid) {                        this.$Message.success('提交成功!');
                    } else {                        this.$Message.error('表單驗(yàn)證失敗!');
                    }
                })
            },
            handleReset (name) {                this.$refs[name].resetFields();
            }
        }
    }</script>

全部復(fù)制下來會(huì)發(fā)現(xiàn)根本沒有用

但是好在這個(gè)東西他開源

于是我去github上看了下源代碼

發(fā)現(xiàn)作者在源代碼中是這樣寫的

我也照葫蘆畫瓢 結(jié)果成功了

貼上代碼

<template>
    <div>
        <Row>
            <Form ref="formValidate1" :model="formValidate" :rules="ruleValidate" :label-width="80">
                <FormItem label="Name" prop="name">
                    <i-input v-model="formValidate.name" placeholder="Enter your name"></i-input>
                </FormItem>
            </Form>
        
        </Row>
    </div>
</template>
<script>
export default {
    data() {
        return {
            formValidate: {
            name: ''
            },
            ruleValidate: {
                name: [{
                required: true,
                message: 'The name cannot be empty',
                trigger: 'blur'
                }]
            }
        }
    }

}
</script>
<style scoped>

</style>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疙教,一起剝皮案震驚了整個(gè)濱河市倍谜,隨后出現(xiàn)的幾起案子疯暑,更是在濱河造成了極大的恐慌皇型,老刑警劉巖舔腾,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岛杀,死亡現(xiàn)場(chǎng)離奇詭異诱篷,居然都是意外死亡壶唤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門棕所,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闸盔,“玉大人,你說我怎么就攤上這事琳省∮常” “怎么了躲撰?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)击费。 經(jīng)常有香客問我拢蛋,道長(zhǎng),這世上最難降的妖魔是什么蔫巩? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任谆棱,我火速辦了婚禮,結(jié)果婚禮上批幌,老公的妹妹穿的比我還像新娘础锐。我一直安慰自己,他們只是感情好荧缘,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布皆警。 她就那樣靜靜地躺著,像睡著了一般截粗。 火紅的嫁衣襯著肌膚如雪信姓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天绸罗,我揣著相機(jī)與錄音意推,去河邊找鬼。 笑死珊蟀,一個(gè)胖子當(dāng)著我的面吹牛菊值,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播育灸,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼腻窒,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了磅崭?” 一聲冷哼從身側(cè)響起儿子,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎砸喻,沒想到半個(gè)月后柔逼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡割岛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年愉适,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癣漆。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡儡毕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腰湾,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布疆股,位于F島的核電站费坊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏旬痹。R本人自食惡果不足惜附井,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望两残。 院中可真熱鬧永毅,春花似錦、人聲如沸人弓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽崔赌。三九已至意蛀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間健芭,已是汗流浹背县钥。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留慈迈,地道東北人若贮。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像痒留,于是被迫代替她去往敵國(guó)和親谴麦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容