在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ antd如何優(yōu)雅的驗(yàn)證兩個input大小?

antd如何優(yōu)雅的驗(yàn)證兩個input大小?

我有兩個input,一個是開始編號,一個是結(jié)束編號,開始編號要比結(jié)束編號小,我看到antd官網(wǎng)上可以自定義validator. 但是有問題,比如我給兩個input都加了驗(yàn)證, 但是每個驗(yàn)證只有在自己change的時候觸發(fā),這就導(dǎo)致我改了某一個,其實(shí)已經(jīng)驗(yàn)證正確了,但是另外一個還是error狀態(tài).
我想要的應(yīng)該是一個驗(yàn)證,當(dāng)兩個input任意一個change時觸發(fā).
寫的有點(diǎn)啰嗦,希望你們能看明白.

  validateReceiptNumber = (rule, value, callback) => {
    const { getFieldValue } = this.props.form;
    let startNum = Number.parseInt(getFieldValue('startNum'));
    let endNum = Number.parseInt(getFieldValue('endNum'));
    if(!Number.isNaN(startNum) && !Number.isNaN(endNum) && startNum > endNum){
      callback('開始編號應(yīng)該小于結(jié)束編號');
    }
    callback()
  }
<FormItem
  validateStatus={startNumError ? "error" : ""}
  help={startNumError || ""}
>
  {getFieldDecorator("startNum", {
    initialValue: "0",
    rules: [
      { required: true, message: "請輸入開始編號" },
      { pattern: /^[0-9]*$/ , message: "請輸入數(shù)字" },
      { validator: this.validateReceiptNumber }
    ]
  })(<Input placeholder="開始編號" />)}
</FormItem>
<FormItem
  validateStatus={endNumError ? "error" : ""}
  help={endNumError || ""}
>
  {getFieldDecorator("endNum", {
    initialValue: "0",
    rules: [
      { required: true, message: "請輸入結(jié)束編號" },
      { pattern: /^[0-9]*$/ , message: "請輸入數(shù)字" },
      { validator: this.validateReceiptNumber }
    ]
  })(<Input placeholder="結(jié)束編號" />)}
</FormItem>
回答
編輯回答
初心

兩個值都放入state里呢?當(dāng)input onchange的時候setState改變值,然后在shouldComponentupdate里去做你想做的驗(yàn)證。也就是非法提示

2017年3月16日 14:04
編輯回答
拽很帥
2017年6月27日 07:24