react+antd:Form表單校驗不提示錯誤信息

使用AntD

Form表單驗證validator不生效
1. 注意是validator,而不是validate
2. validator總需要返回一個callback,有問題返回callback(錯誤提醒文字)拥刻,驗證沒有問題也要執(zhí)行callback(),
3. 一個FormItem 中,getFieldDecorator一個選項锡垄,例如:
    <FormItem>
        { getFieldDecorator('wakeup_prompt', {
            rules: [{
                required: true,
                message: 'This field is required'
            }],
            initialValue: 'defalut'
        })(
            <Select>
                {
                    fileList.map(function(item) {
                        return <Option
                                key={ item.text }
                                value={ item.val }
                            >
                                { item.text }
                            </Option>
                        }
                    )
                }
            </Select>
             <a className="prompt_setting" style={{ marginLeft: '10px' }} onClick={ this._showUploadModal } >Click Me</a>
        ) }
    </FormItem>
    
    此時,getFieldDecorator中同時有Select 和 a 元素来破, require: true驗證不生效篮灼,需要把a(bǔ)標(biāo)簽元素移除FormItem
Form表單Select中設(shè)置initialValue 無效(AntD 2.9.1)
1. initialValue值屬性為字符串,與Option中的value 值對應(yīng)
2. 同個FormItem 中不能包含多個getFieldDecorator徘禁,但是可以里面可以包含多個FormItem
3. Select 外面不要多加元素诅诱,否則有異常
                 
 <FormItem
        { ...formItemLayout }
        label={(
            <Tooltip title={ <FormattedHTMLMessage id="LANG2230" /> }>
                <span>{ formatMessage({id: "LANG2230"}) }</span>
            </Tooltip>
        )}
    >
        <FormItem
            style={{ display: 'inline-block', width: 'calc(50%)' }}
        >
        { getFieldDecorator('end_time', {
            getValueFromEvent: (e) => {
                return UCMGUI.toggleErrorMessage(e)
            },
            rules: [{
                required: true,
                message: formatMessage({id: "LANG2150"})
            }],
            initialValue: '0'
        })(
            <Select>
                <Option value='0'>0</Option>
                <Option value='1'>1</Option>
            </Select>
        ) }
        </FormItem>
        <FormItem
            style={{ display: 'inline-block', width: 'calc(50%)' }}
        >
            { getFieldDecorator('day_min', {
                initialValue: '15'
            })(
                <div>
                    <Select style={{ width: 128, marginRight: 10 }}>
                        <Option value="0">0</Option>
                        <Option value="15">15</Option>
                    </Select>
                    分鐘
                </div>
            )}
        </FormItem>
    </FormItem>

其中因為Select 外面加了div 導(dǎo)致initialValue 設(shè)置無效

     <FormItem
            style={{ display: 'inline-block', width: 'calc(50%)' }}
        >
            { getFieldDecorator('day_min', {
                initialValue: '15'
            })(
                <!--<div>-->
                    <Select style={{ width: 128, marginRight: 10 }}>
                        <Option value="0">0</Option>
                        <Option value="15">15</Option>
                    </Select>
                <!--</div>-->
            )}
</FormItem>
Form 布局問題

外formitem添加formLayout樣式,內(nèi)部加Col 控制顯示

            <FormItem
                    { ...formItemDnLayout }
                    label={ formatMessage({id: "LANG2016"}) }
                >
                    <Col span={ 8 }>
                        <FormItem>
                            { getFieldDecorator('pbxdn', {
                                getValueFromEvent: (e) => {
                                    return UCMGUI.toggleErrorMessage(e)
                                },
                                rules: [{
                                    required: true,
                                    message: formatMessage({id: "LANG2150"})
                                }, {
                                    validator: (data, value, callback) => {
                                        let basedn = this.state.basedn

                                        this._validLdapChars(data, value + basedn, callback, formatMessage, formatMessage({id: "LANG2016"}))
                                    }
                                }, {
                                    validator: (data, value, callback) => {
                                        let basedn = this.state.basedn

                                       this._validDn(data, value + basedn, callback, formatMessage)
                                    }
                                }, {
                                    validator: (data, value, callback) => {
                                        let basedn = this.state.basedn

                                       this._validAttr(data, value + basedn, callback, formatMessage)
                                    }
                                }, {
                                    validator: (data, value, callback) => {
                                        let basedn = this.state.basedn

                                       this._isUnderBasedn(data, value + basedn, callback, formatMessage)
                                    }
                                }, {
                                    validator: (data, value, callback) => {
                                        let basedn = this.state.basedn

                                       this._isPrefixExist(data, value + basedn, callback, formatMessage)
                                    }
                                }],
                                initialValue: pbxdn
                            })(
                                <Input />
                            )}
                        </FormItem>
                    </Col>
                    <Col span={ 6 }>
                        <span style={{ paddingLeft: '10px' }}>{ this.state.basedn }</span>
                    </Col>
                </FormItem>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末送朱,一起剝皮案震驚了整個濱河市娘荡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驶沼,老刑警劉巖炮沐,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異回怜,居然都是意外死亡大年,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門玉雾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翔试,“玉大人,你說我怎么就攤上這事复旬】衙澹” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵驹碍,是天一觀的道長壁涎。 經(jīng)常有香客問我,道長志秃,這世上最難降的妖魔是什么粹庞? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮洽损,結(jié)果婚禮上庞溜,老公的妹妹穿的比我還像新娘。我一直安慰自己碑定,他們只是感情好流码,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著延刘,像睡著了一般漫试。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碘赖,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天驾荣,我揣著相機(jī)與錄音外构,去河邊找鬼。 笑死播掷,一個胖子當(dāng)著我的面吹牛审编,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播歧匈,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼垒酬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了件炉?” 一聲冷哼從身側(cè)響起勘究,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斟冕,沒想到半個月后口糕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡磕蛇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年景描,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片孤里。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡伏伯,死狀恐怖橘洞,靈堂內(nèi)的尸體忽然破棺而出捌袜,到底是詐尸還是另有隱情,我是刑警寧澤炸枣,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布烫扼,位于F島的核電站耸弄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泻肯,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拍鲤。 院中可真熱鬧鲸鹦,春花似錦、人聲如沸逛揩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辩稽。三九已至惧笛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逞泄,已是汗流浹背患整。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工拜效, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人各谚。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓紧憾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘲碧。 傳聞我的和親對象是個殘疾皇子稻励,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

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