Form & Function
An online publication brought to you by the team at Formspree featuring editorial writing and technical how-tos on static site generation, HTML forms, and other web technologies you can use to get your site well built and running fast on the Internet.
Stripe Elements are intended for building custom payment experiences. However, they require a server to submit the charge to Stripe. What if you’re a front end designer or developer that doesn’t want to build or maintain your own server? Or what if you’re working on a static site that doesn’t have a server? Well, this tutorial is for you!
In this tutorial we’ll create a payment form using Stripe Elements that submits to Formspree.
Formik is a form library that’s very flexible, but also has a concise interface that’s quick to learn. In this final part of our series on building React forms, we’ll rebuild the form from parts 1 and 2 with Formik. We’ll discuss some benefits a drawbacks of using Formik, and highlight the alternatives.
To recap: in Part 2 we created a controlled component form and implemented our own validation with useState and useEffects.
In Part 1 we talked about building a simple contact form using an uncontrolled component. In an uncontrolled component, validation is left up to the browser. As we discussed, this can lead to an inconsistent experience across browsers.
In this tutorial we’ll modify our basic form by taking control of the form’s state. In doing this we’ll create what React calls a “controlled component.” With a controlled component we’ll have more control over the form, allowing us to create a consistent validation experience, and customize it however we like.