首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在表单提交react js后重置formik表单

在表单提交React JS后重置Formik表单,可以通过以下步骤实现:

  1. 首先,确保你已经安装了Formik库。你可以使用以下命令进行安装:
代码语言:txt
复制
npm install formik
  1. 在你的React组件中,导入Formik和相关的表单组件:
代码语言:txt
复制
import { Formik, Form, Field, ErrorMessage } from 'formik';
  1. 创建一个初始表单值对象,并定义表单的验证规则:
代码语言:txt
复制
const initialValues = {
  name: '',
  email: '',
  password: ''
};

const validateForm = (values) => {
  const errors = {};

  if (!values.name) {
    errors.name = 'Required';
  }

  if (!values.email) {
    errors.email = 'Required';
  } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.email)) {
    errors.email = 'Invalid email address';
  }

  if (!values.password) {
    errors.password = 'Required';
  } else if (values.password.length < 6) {
    errors.password = 'Password must be at least 6 characters long';
  }

  return errors;
};
  1. 在你的组件中,使用Formik组件包裹表单,并设置initialValues和validate属性:
代码语言:txt
复制
<Formik
  initialValues={initialValues}
  validate={validateForm}
  onSubmit={(values, { resetForm }) => {
    // 处理表单提交逻辑
    // ...

    // 重置表单
    resetForm();
  }}
>
  {({ isSubmitting }) => (
    <Form>
      <div>
        <label htmlFor="name">Name</label>
        <Field type="text" name="name" />
        <ErrorMessage name="name" component="div" />
      </div>

      <div>
        <label htmlFor="email">Email</label>
        <Field type="email" name="email" />
        <ErrorMessage name="email" component="div" />
      </div>

      <div>
        <label htmlFor="password">Password</label>
        <Field type="password" name="password" />
        <ErrorMessage name="password" component="div" />
      </div>

      <button type="submit" disabled={isSubmitting}>
        Submit
      </button>
    </Form>
  )}
</Formik>

在上述代码中,当表单提交时,通过onSubmit回调函数处理表单提交逻辑,并在处理完逻辑后调用resetForm函数重置表单。

这样,当用户点击提交按钮时,表单将被提交并重置为初始状态,清空所有输入字段的值。

关于Formik的更多信息和使用方法,你可以参考腾讯云的Formik产品介绍链接地址:Formik产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

异步提交表单_js异步提交表单并回调

异步提交表单 异步提交表单的步骤 所谓异步提交表单,就是不再使用表单提交按钮实现表单提交功能,而是通过Ajax异步交互方式实现表单提交。具体实现步骤如下: 获取表单及所有表单组件对应的数据值。...将所有表单组件对应的数据值拼成特定格式的字符串或是JSON格式数据。 通过Ajax异步交互方式提交表单。...info, success: function(data){ console.log(data); } }); Jetbrains全家桶1年46,售后保障稳定 异步提交表单的案例...= $("#password"); $form.bind("submit", function (event) { // 阻止表单默认的同步提交 event.preventDefault(); /.../ 表单序列化 - 根据表单默认同步提交获取数据的方式 // var data = $("form").serialize(); // console.log(data); var data = $("

11.7K10

firefox中用js提交表单

表单提交 firefox 浏览器下是不起作用的 2....” # 当提交按钮的 name 或者 id 为 submit 时候,用 js 提交表单表单名.submit () 时候会报一个错误,提示对象不支持此属性或办法。...那么,请问为什么 当提交按钮的 name 或者 id 为 submit 或者 action 的时候 js 提交表单会报错呢?这难道是 一个 bug? 高手们请指教。。。。...因为” 表单名.submit () 提交” 这种写法本身就是不符合 W3C 标准的规定的, IE 下没有报错因为 IE 支持这种写法,但是如果在 FF 下就会报错,要写成”document.getElementById...我项目中发现 与 得出的效果截然不同, 谁能告诉我这两着有合不同 我又如何能用图片来替代原有的提交按钮 是说这是一个按钮,它的是一个提交按钮。当点击它时,它会自动将它所在的表单进行提交.

7.1K20

js – form表单提交不刷新

大家已经发现了, 当我们点击submit提交form表单的时候, 他会刷新一次, 如果不想它刷新的话有下面两种方法: 利用iframe 我们可以利用一个隐藏的iframe来实现, 主要是我们把提交目标放到一个隐藏的..." name="the_iframe" style="display:none;"> 利用onsubmit事件 我们还可以绑定onsubmit事件(用jq的话是submit()), submit...按钮效果触发之前我们就把数据提交了, 然后我们return false(让submit这次的点击触发事件失效, 否则表单又会提交一次, 并且刷新页面) 我们可以这样: ====== 如果你用原生js的话..." /> js代码: function post_data(){ // ajax数据提交代码 // ........我们绑定onsubmit的时候是把return false放进onsubmit后面的调用函数内的, 这样子如果你的函数出现了错误, 将不会继续执行到函数最后’return false’这里, 还是会出现刷新的现象

14.4K10

js基础-表单验证和提交

id:标识标签元素 当提交,服务器就会得到:username=填的用户名 & password=填的密码 当点击提交,form数据就会发送。通常提交前要校验数据。比如长度规则等。...所以需要js。     js校验:   方法1:       from属性后面接着添加onsubmit="return false;"属性.表示不提交。true则相反。这里可以用一个方法替换。...js中,方法参数不用声明类型,调用方法的时候,参数按照顺序匹配。...对应到表单,就是onsubmit="false",表示不提交。 如果if条件都满足,则return true;提交。...||表示或者,意思是,如果username==null或者username是空字符串,条件1或者条件2为true则都是true 方法2:js控制提交表单 首先,表单元素代码如下: 1 <form action

12.5K60
领券