To be able to send data to an API, we'll need a way to retrieve that data from forms in the DOM. It turns out that needing to grab some user input and send it to the API is a very common problem in front-end web development.
To help solve that problem, we've included a function called getFormFields
in
this template. Let's take a look at how to use that function. In this example,
the user is inputting information about a book.
First, your <input>
s will need to be wrapped in a <form>
, like this:
<form id="create-book">
<input name="book[title]" type="text">
<input name="book[author]" type="text">
<button type="submit">Create Book</button>
</form>
Then, in your Javascript, you'd do something like this:
const getFormFields = require('<path to lib>/get-form-fields.js')
$('#create-book').on('submit', function (event) {
event.preventDefault()
const form = event.target
const bookData = getFormFields(form)
})
Then, the bookData
variable would look like this:
{
book: {
title: "<whatever was entered in the title input >",
author: "<whatever was entered in the author input>"
}
}
Note that in your projects, the code above will be spread out over several files.