Test submitting this live demo form in real-time.
1234567891011121314151617181920212223242526import { useForm } from 'react-hook-form';export function ContactForm() {const { register, handleSubmit, reset, formState: { isSubmitting, isSubmitSuccessful } } = useForm();const onSubmit = async (data) => {await fetch('https://api.formtruck.com/f/ft_YOUR_FORM_ID', {method: 'POST',headers: { 'Content-Type': 'application/json', Accept: 'application/json' },body: JSON.stringify(data),});reset();};return (<form onSubmit={handleSubmit(onSubmit)}><input {...register('name', { required: true })} placeholder="Full Name" /><input {...register('email', { required: true })} type="email" placeholder="Work Email" /><textarea {...register('message', { required: true })} placeholder="How can we help?" /><button type="submit" disabled={isSubmitting}>{isSubmitting ? 'Submitting...' : 'Submit Form'}</button>{isSubmitSuccessful && <p className="success">Message received!</p>}</form>);}
Keep this field hidden via CSS. If a spam bot fills it out, Formtruck silently traps the submission into your spam folder.
Specify a custom thank-you page URL (e.g. https://yoursite.com/thank-you) for native HTML POST submissions.
Customize the email notification subject line (e.g. New VIP Client Inquiry).