Vitaly
Vitaly

Reputation: 109

FormData is empty in JS

<form class="form">
  <div class="container">
    <label>URL</label>
    <input id="data-url" value="val" type="text" />
  </div>
</form>

const formData = new FormData(document.querySelector('.form'));
console.log([...formData])

It is simplified version of HTML, but basically label and input tags are descendants of form. I am trying to get value of input and name of the label using FormData API, but it is empty for some reason.

Upvotes: 1

Views: 835

Answers (1)

Spectric
Spectric

Reputation: 32002

You need the give the input a name:

form.addEventListener('submit', function(e) {
  e.preventDefault();
  const formData = new FormData(form);
  console.log([...formData])
})
<form class="form" id="form">
  <div class="container">
    <label>URL</label>
    <input id="data-url" value="val" type="text" name="data-url" />
  </div>
  <button>View form data</button>
</form>

Upvotes: 5

Related Questions