当前位置:首页 > React

react 如何触发表单的校验

2026-01-25 18:38:49React

触发表单校验的方法

在React中,表单校验通常通过受控组件或第三方库(如Formik、React Hook Form)实现。以下是常见的触发校验方式:

受控组件手动校验

通过状态管理错误信息,在提交或失去焦点时触发校验:

const [email, setEmail] = useState('');
const [error, setError] = useState('');

const handleBlur = () => {
  if (!email.includes('@')) {
    setError('Invalid email');
  } else {
    setError('');
  }
};

return (
  <input 
    value={email}
    onChange={(e) => setEmail(e.target.value)}
    onBlur={handleBlur}
  />
  {error && <div>{error}</div>}
);

使用Formik库

Formik提供validatevalidationSchema属性自动触发表单校验:

react 如何触发表单的校验

<Formik
  initialValues={{ email: '' }}
  validate={values => {
    const errors = {};
    if (!values.email.includes('@')) {
      errors.email = 'Invalid email';
    }
    return errors;
  }}
  onSubmit={values => console.log(values)}
>
  {({ errors }) => (
    <Form>
      <Field name="email" />
      {errors.email && <div>{errors.email}</div>}
      <button type="submit">Submit</button>
    </Form>
  )}
</Formik>

使用React Hook Form

通过register注册校验规则,handleSubmit触发校验:

const { register, handleSubmit, formState: { errors } } = useForm({
  mode: 'onBlur' // 可设置为onChange/onSubmit
});

return (
  <form onSubmit={handleSubmit(data => console.log(data))}>
    <input 
      {...register('email', { 
        required: true,
        pattern: /^\S+@\S+$/i 
      })} 
    />
    {errors.email && <span>Invalid email</span>}
    <button type="submit">Submit</button>
  </form>
);

校验触发时机配置

不同库支持多种触发模式:

react 如何触发表单的校验

  • onBlur: 输入框失去焦点时校验
  • onChange: 值变化时实时校验
  • onSubmit: 提交表单时校验(默认行为)
  • onTouched: 元素被交互后校验

在React Hook Form中可通过mode配置:

useForm({ mode: 'onBlur' });

在Formik中可通过validateOnBlur/validateOnChange控制:

<Formik validateOnBlur={true} validateOnChange={false}>

标签: 表单react
分享给朋友:

相关文章

如何安装react

如何安装react

安装React的方法 方法一:使用Create React App(官方推荐) Create React App是官方提供的脚手架工具,适合快速搭建React项目。确保已安装Node.js(建议版本≥…

react如何刷新

react如何刷新

刷新React组件的方法 使用状态更新触发重新渲染 通过更新组件的状态可以触发重新渲染。React会在状态变化时自动重新渲染组件。 const [count, setCount] = useStat…

react如何重置

react如何重置

重置 React 应用的状态 使用 useState 钩子重新初始化状态变量是最直接的方法。将状态变量重置为初始值或空值即可完成重置。 const [count, setCount] = useSt…

react如何发布

react如何发布

发布React应用的步骤 构建生产版本 使用以下命令生成优化后的生产版本代码,代码会被压缩并移除开发环境中的调试工具: npm run build 构建完成后会生成build文件夹,包含所有静态资源…

jquery 表单

jquery 表单

jQuery 表单操作 使用 jQuery 操作表单可以简化 DOM 操作,提高开发效率。以下是一些常见的表单操作方法: 获取表单元素的值 使用 val() 方法可以获取或设置表单元素的值。 //…

react如何debugger

react如何debugger

调试 React 应用的方法 使用浏览器开发者工具进行调试 React 开发者工具(React DevTools)是调试 React 应用的必备工具。安装 Chrome 或 Firefox 扩展后,可…