安装

  1. yarn add antd

引入样式

  1. @import '~antd/dist/antd.css';

antd 表单验证

方法一: 在 rules 中添加简单规则验证

  1. <Form.Item
  2. label="密码"
  3. name="password"
  4. rules={[{ required: true, message: '请输入密码!' }, {
  5. min: 4,
  6. message: '最少4个字符'
  7. }, {
  8. max: 16,
  9. message: '最多16个字符'
  10. }]}
  11. >
  12. <Input.Password />
  13. </Form.Item>

方法二: 在 rules 中返回一个 validator 函数实现表单验证

  1. <Form.Item
  2. label="用户名"
  3. name="username"
  4. rules={[{ required: true, message: '请输入用户名!' }, () => ({
  5. validator(_, value=''){
  6. if(/\W/.test(value)) return Promise.reject('只能由字母数字下划线组成')
  7. if(value.length > 10) return Promise.reject('最多10个字符')
  8. if(value.length < 3) return Promise.reject('最少3个字符')
  9. return Promise.resolve()
  10. }
  11. })]}
  12. >
  13. <Input />
  14. </Form.Item>
  15. <Form.Item
  16. label="确认密码"
  17. name="ConfirmPassword"
  18. rules={[{ required: true, message: '请输入确认密码!' }, ({ getFieldValue }) => ({
  19. validator(_, value='') {
  20. if (!value || getFieldValue('password') === value) {
  21. return Promise.resolve();
  22. }
  23. return Promise.reject(new Error('两次密码输入不一致!'));
  24. },
  25. }),]}
  26. >
  27. <Input.Password />
  28. </Form.Item>

注意 validator 的参数 value 要给一个默认值,否则当什么都不输入直接提交时会报错
Validation error on field ‘username’
image.png

给 input 设置默认值

在 Form 的 initialValues 中给 Item 中的 input 设置默认值

  1. <Form
  2. name="basic"
  3. initialValues={{ username: 'jack', password: '1234', remember: true }}
  4. onFinish={onFinish}
  5. onFinishFailed={onFinishFailed}
  6. autoComplete="off"
  7. >
  8. <Form.Item
  9. name="username"
  10. rules={[{ required: true, message: '请输入用户名!' }]}
  11. >
  12. <Input
  13. prefix={<UserOutlined className="site-form-item-icon" />}
  14. placeholder="用户名"
  15. />
  16. </Form.Item>
  17. // ...