antd的表单验证

目录

使用表单内的按钮验证

使用Form组件实例化进行验证


使用表单内的按钮验证

主要用到了Form组件的这两个方法

  同时表单内的按钮一定要设置成提交类型

 下面是代码演示

import React from 'react'
import { Button, Form, Input } from 'antd'

export default function Music() {
  const onFinish = (values) => {
    // values就是表单中输入的值
    console.log('Success:', values)
  }
  const onFinishFailed = (errorInfo) => {
    console.log('Failed:', errorInfo)
  }
  return (
    <div style={{ width: 400, margin: '0 auto' }}>
      <Form
        labelCol={{ span: 4 }}
        onFinish={onFinish}
        onFinishFailed={onFinishFailed}
        autoComplete="off"
      >
        <Form.Item
          label="用户名"
          name="username"
          rules={[
            {
              required: true,
              message: '请输入用户名!',
            },
          ]}
        >
          <Input />
        </Form.Item>

        <Form.Item
          label="密码"
          name="password"
          rules={[
            {
              required: true,
              message: '请输入密码!',
            },
          ]}
        >
          <Input.Password />
        </Form.Item>

        <Form.Item
          wrapperCol={{
            offset: 8,
            span: 16,
          }}
        >
          <Button type="primary" htmlType="submit">
            登录
          </Button>
        </Form.Item>
      </Form>
    </div>
  )
}

使用Form组件实例化进行验证

获取需要校验的表单的实例化

 通过实例化的validateFields方法触发表单验证

这是此方法返回实例

 代码演示

import React, { useState } from 'react'
import { Modal, Form, Input, Button } from 'antd'

export default function Movie() {
  // 表单实例化  会绑定表单的form值为formInstance的内个表单,一一对应
  const [formInstance] = Form.useForm()
  // 控制对话框的显示/隐藏
  const [isModalOpen, setIsModalOpen] = useState(false)
  // 按钮点击事件
  const showModal = () => {
    setIsModalOpen(true)
  }
  // 对话框点击确定
  const handleOk = () => {
    // 通过表单实例化的validateFields()方法进行校验
    formInstance.validateFields().then((values) => {
      // values就是表单中输入的值
      console.log(values)
      setIsModalOpen(false)
    })
  }
  // 对话框点击取消
  const handleCancel = () => {
    setIsModalOpen(false)
  }
  return (
    <div>
      <Button type="primary" onClick={showModal}>
        显示对话框
      </Button>
      <Modal
        title="Basic Modal"
        open={isModalOpen}
        onOk={handleOk}
        onCancel={handleCancel}
      >
        <Form form={formInstance} labelCol={{ span: 4 }} autoComplete="off">
          <Form.Item
            label="用户名"
            name="username"
            rules={[
              {
                required: true,
                message: '请输入用户名!',
              },
            ]}
          >
            <Input />
          </Form.Item>

          <Form.Item
            label="密码"
            name="password"
            rules={[
              {
                required: true,
                message: '请输入密码!',
              },
            ]}
          >
            <Input.Password />
          </Form.Item>
        </Form>
      </Modal>
    </div>
  )
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
antd 中,可以通过调用表单组件的 validateFields 方法来触发表单验证。具体的步骤如下: 1. 在表单组件中引入 Form 组件和 useForm 方法: ```javascript import { Form } from 'antd'; import { useForm } from 'antd/lib/form/Form'; ``` 2. 使用 useForm 方法来获取表单实例和表单验证方法: ```javascript const [form] = Form.useForm(); const { validateFields } = form; ``` 3. 在需要触发验证的时机调用 validateFields 方法: ```javascript const handleFormSubmit = () => { validateFields() .then((values) => { // 验证成功,执行提交操作 console.log(values); }) .catch((errorInfo) => { // 验证失败,处理错误信息 console.log(errorInfo); }); }; ``` 在上述代码中,handleFormSubmit 方法用于处理表单提交操作。当调用 validateFields 方法时,会返回一个 Promise 对象,通过 then 方法可以获取到验证成功后的表单值,通过 catch 方法可以处理验证失败时的错误信息。 需要注意的是,在表单组件中,每个需要验证的字段都应该通过 name 属性进行命名,例如: ```javascript <Form form={form}> <Form.Item name="username" label="用户名" rules={[{ required: true, message: '请输入用户名' }]}> <Input /> </Form.Item> {/* 其他表单项 */} <Button onClick={handleFormSubmit}>提交</Button> </Form> ``` 以上是使用 antd 中的 Form 组件来触发表单验证的方法。希望能帮到你!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值