热爱web前端
技术分享平台

ant 框架中 input=number验证不通过的问题

昨天遇到了一个`input =number` 的验证问题
代码如下:

getFieldDecorator("Start", {

initialValue: PriceModel.get("Start")||0,
rules:[
{
message:"请输入起订量,按出售单位计算"
},{
required:true,message:"请输入起订量,按出售单位计算"
}
]

})(
)

第一次验证没有通过,我把input 标签上`input=number`转移到了 rules 里面,但还是有问题,结果在ant的github上发现了这个问题的解决办法

如下:
去掉 `type=number` 改为 `pattern:/^\d+$/`
正确的代码:

getFieldDecorator("Start", {
                          
                            initialValue: PriceModel.get("Start")||0,
                            rules:[
                                {
                                  message:"请输入起订量,按出售单位计算",
                                    pattern:/^\d+$/
                                },{
                                    required:true,message:"请输入起订量,按出售单位计算"
                                }
                            ]
                         
                        })(
                        )

问题的原因应该是内部使用了 `typeof input ===number` 我是猜的,不过问题已经解决了,我很高兴,如果你也遇到了,那么这正好也可以解决你的问题,如果你想输入浮点数那么使用`pattern:/^\d+(\.\d+)?$/`即可

还有一种解决办法:

 {
                        getFieldDecorator("Start", {
                          
                            initialValue: PriceModel.get("Start"),
                            getValueFromEvent(e){
                               return  Number(e.target.value)?Number(e.target.value):e.target.value;
                            },
                            rules:[
                               {
                                    required:true,message:"请输入起订量,按出售单位计算111",type:"number"
                                }
                            ]
                         
                        })(
                        )
                    }

未经允许不得转载:前端网(w3cvip) » ant 框架中 input=number验证不通过的问题

分享到:更多 ()

评论 抢沙发

评论前必须登录!