Examples
TypeScript / JavaScript

TypeScript / JavaScript

Here's how you can use both JavaScript or TypeScript to submit your forms:

Obtain Your Form ID

Log into your dashboard (opens in a new tab) and create a form. You can find the form id on the form page.

Make a POST request using fetch to your form

Make a POST request to https://formail.dev/submit/<YOUR_FORM_ID> with the form data in the request body. Also ensure that within the headers object you include the Content Type as application/json Replace <YOUR_FORM_ID> with your actual form id obtained from your form page.

JavaScript

const handleSubmit = async (event) => {
  event.preventDefault();
  const formData = new FormData(event.target);
  const data = Object.fromEntries(formData.entries());
  const formId = 'your-form-id'; // Replace this with your form id
 
  try {
    const response = await fetch(`https://formail.dev/submit/${formId}`, {
      method: 'POST',
      body: JSON.stringify(data),
      headers: {
        'Content-Type': 'application/json',
      },
    });
 
    if (!response.ok) throw new Error('Form submission failed');
    console.log('Form submitted successfully');
  } catch (error) {
    console.error(error);
  }
};
⚠️

If your form includes non-string types (e.g., files, arrays, or objects), you need to adjust the code to handle these appropriately. This example handles only string values, but you can expand it to manage other types.

Remember to handle errors and exceptions to ensure a smooth user experience.

TypeScript

const handleSubmit = async (
  event: React.FormEvent<HTMLFormElement>
): Promise<void> => {
  event.preventDefault();
  const formData = new FormData(event.currentTarget);
  const data: { [key: string]: any } = {}; // Using any type to allow non-string values
  const formId = 'your-form-id'; // Replace this with your form id
 
  formData.forEach((value, key) => {
    if (typeof value === 'string') {
      data[key] = value;
    } else {
      data[key] = value; // handle non string types here
    }
  });
 
  try {
    const response = await fetch(`https://formail.dev/submit/${formId}`, {
      method: 'POST',
      body: JSON.stringify(data),
      headers: {
        'Content-Type': 'application/json',
      },
    });
 
    if (!response.ok) throw new Error('Form submission failed');
    console.log('Form submitted successfully');
  } catch (error) {
    console.error('An error occurred:', (error as Error).message);
  }
};
⚠️

If your form includes non-string types (e.g., files, arrays, or objects), you need to adjust the code to handle these appropriately. This example handles only string values, but you can expand it to manage other types.

Remember to handle errors and exceptions to ensure a smooth user experience.