Helper functions

The createForm function also returns some additional helpers that can help with some more complex use cases.

setField

A function that accepts a string path for the data store, the value to be set and an optional boolean argument defining if this operation should touch the field (defaults to true).

getField

A function that accepts a string path for the data store. It will return the value contained in said path.

setFields

A function that accepts an object with the same shape as your data, it will set this data to your data store as well as to every field of the form.

setTouched

A function that accepts a string path for the touched store that sets a field to touched.

setError

A function that accepts a string path for the errors store that sets an error.

validate

A function that forces Felte to validate all inputs, touches all of them and updates the errors store. It has no arguments.

reset

A function that resets all inputs and the data store to its original values. It has no arguments.

setInitialValues

A helper function that sets the initialValues Felte handles internally. If called after initialization of the form, these values will be used when calling reset.

createSubmitHandler

A function that creates a submit handler with overriden onSubmit, onError and/or validate functions. If nothing is passed as a first argument, or if any of the three accepted properties is undefined, it will use the values from the createForm configuration object as a default.

function Form() {
  const { form, createSubmitHandler } = createForm({
    onSubmit: (values) => console.log('Default onSubmit'),
  });

  const altOnSubmit = createSubmitHandler({
    onSubmit: (values) => console.log('Alternative onSubmit'),
    validate: (values) => /* ... */,
    onError: (errors) => /* ... */,
  });

  return (
    <form use:form>
      <input type="email" name="email" />
      <input type="password" name="password" />
      <button type="submit">Call default submit handler</button>
      <button type="submit" onClick={altOnSubmit}>Call alternative submit handler</button>
    </form>
  );
}

NOTE: The returned submit handler can be used outside of the <form> tag or be called programatically.