Skip to content

几种获取表单数据的方式

方式一

Button(htmlType 属性为 submit) 在 Form 内部,通过监听 Form 的 onFinishsh 事件来获取表单数据。

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

const MyForm: React.FC = () => {
  function onFinish(values) {
    console.log(values)
  }

  return (
    <>
      <Form onFinish={onFinish}>
        <Form.Item label="Username" name="username">
          <Input></Input>
        </Form.Item>

        <Form.Item>
          <Button htmlType="submit">Submit</Button>
        </Form.Item>
      </Form>
    </>
  )
}

export default MyForm

初始时,点击按钮,控制台输出:

{username: undefined}

在输入框输入 hello,点击按钮,输出:

{username: 'hello'}

清空输入框,点击按钮,输出:

{username: ''}

方式二

Button 在 Form 外,监听 Button 的点击事件,通过 Form.useForm 对表单数据域进行交互。

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

const MyForm: React.FC = () => {
  // form 为表单实例,https://ant-design.antgroup.com/components/form-cn#forminstance
  const [form] = Form.useForm<{ username: string }>()

  function handleClick() {
    console.log(form.getFieldsValue())
  }

  return (
    <>
      <Form form={form}>
        <Form.Item label="Username" name="username">
          <Input></Input>
        </Form.Item>
      </Form>

      <Button onClick={handleClick}>Submit</Button>
    </>
  )
}

export default MyForm