react ant如何使用自定义表单验证?
1.上代码
const Login = (
{
loading,
dispatch,
form: {
getFieldDecorator,
validateFieldsAndScroll
},
}
) => {
function handleOk() {
validateFieldsAndScroll((errors, values) => {
if (errors) {
console.log(`错误信息${errors}`);
return
}
dispatch({type: 'login/login', payload: values}) //如果正确就发送至models进行处理
});
}
return (
<div className={styles.form}>
<div className={styles.logo}>
<img alt="logo" src={logo_img}/>
<span>Light of Hope</span>
</div>
<form>
<FormItem hasFeedback>
{getFieldDecorator('username', {
rules: [
{
required: true,
message:'请输入您的用户名'
}
],
// initialValue: 'admin', //初始值
})(<Input prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)', fontSize:16 }} />} onPressEnter={handleOk} placeholder="用户名"/>)}
</FormItem>
<FormItem hasFeedback>
{getFieldDecorator('password', {
rules: [
{
required: true,
message:'请输入您的密码'
},
{
validator(rule, values, callback){
if(rule&&values.length>0){
console.log('校验完成')
}else{
callback(
console.log('校验完成')
);
}
}
}
],
// initialValue: '123456',//初始值
})(<Input prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)' , fontSize:16}} />} type="password" onPressEnter={handleOk} placeholder="密码"/>)}
</FormItem>
<Row>
<Button type="primary" onClick={handleOk} loading={loading.effects.login}>
登录
</Button>
<p>
<span>Username:admin</span>
<span>Password:123456</span>
</p>
</Row>
</form>
</div>
)
};
2.例如:我想验证密码必须大于6位数并至少包含一个字母该如何进行做呢?在网上查了下 说可以通过validator来实现自定义验证 但我作为一个react萌新 有点不太会 还请,各位能够多多指点!
使用正则表达式