Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

165
Visualizações
Exlude empty properties from Javascript ajax formData

I have form that sends form data

The empty fields[] appear when there is no option selected.

Is there any way I can exclude the empty fields[] from sending via the formData in my Javascript?

Sending Header Output

fields[name]: name
fields[phone]: phone
fields[]: 
fields[]: 

$('body').on('submit', '#submit', function(e) {
  e.preventDefault();
  var formData = new FormData(this);
  // logs what's the actual properties sent
  for (var prop of formData) console.log(prop);
    $.ajax({
    url: $(this).attr('action'),
    data: formData,
    type: 'POST',
    contentType: false,
    cache: false,
    processData: false,
  }).done(function(data) {
    //success
  }).fail(function() {
    //eror
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<form id="submit">
  <select name="fields[name]">
    <option value=""></option>
    <option value="name">Name</option>
    <option value="phone">Phone</option>
  </select>

  <select name="fields[phone]">
    <option value=""></option>
    <option value="name">Name</option>
    <option value="phone">Phone</option>
  </select>
  <select name="fields[email]">
    <option value="name">Name</option>
    <option value="phone">Phone</option>
  </select>
  <input type="submit"/>
</form>

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

We are guessing that you want to clean up all form properties having empty value. That's a way to do it, it could be more optimal but this is easier for understanding.

$('body').on('submit', '#submit', function(e) {
  e.preventDefault();
  var formData = new FormData(this);
  var formDataNonEmpty = new FormData();
  // add all non empy entries to formDataNonEmpty
  for (var prop of formData) if (prop[1]) formDataNonEmpty.append(prop[0], prop[1]);
  // logs what's the actual properties sent
  for (var prop of formDataNonEmpty) console.log(prop);
    $.ajax({
    url: $(this).attr('action'),
    data: formDataNonEmpty,
    type: 'POST',
    contentType: false,
    cache: false,
    processData: false,
  }).done(function(data) {
    //success
  }).fail(function() {
    //eror
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<form id="submit">
  <select name="fields[name]">
    <option value=""></option>
    <option value="name">Name</option>
    <option value="phone">Phone</option>
  </select>

  <select name="fields[phone]">
    <option value=""></option>
    <option value="name">Name</option>
    <option value="phone">Phone</option>
  </select>
  <select name="fields[email]">
    <option value="name">Name</option>
    <option value="phone">Phone</option>
  </select>
  <input type="submit"/>
</form>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda