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

148
Visualizações
eventlistener no funciona para el elemento creado dinámicamente

Tengo una sección simple en la que los usuarios pueden agregar campos de entrada dinámicamente y los usuarios deberían poder eliminar los campos de entrada agregados haciendo clic en el botón Eliminar. estoy usando vainilla js

aquí hay una demostración en vivo: demostración en vivo codepen

HTML

 <div id="domains-wrapper"> <div class="input-group"> <input name="domains" type="text" class="form-control domain-url" placeholder="Type valid url" value="" required=""> <div class="valid-feedback">Looks good!</div> <button id="default-delete" style="display: none;" class="default-delete delete-input-el domain-btn btn-sm border border-1" type="button"> </button> <button id="default-add" class="add-input-el added-input plus-button btn-sm border border-1 add_form_field" type="button"> <span class="add-icon">+ </span> </button> </div> </div>

js

 var max_fields = 10; var wrapper = document.getElementById("domains-wrapper"); var add_button = document.getElementById("default-add"); var x = 1; add_button.addEventListener('click', function(e) { e.preventDefault(); if (x < max_fields) { x++; $(wrapper).append('<div><input id="delete" type="text" name="mytext[]"/><a href="#" class="delete">Delete</a></div>'); //add input box } else { alert('You Reached the limits') } }) var deleteBtn = document.querySelectorAll(".delete"); deleteBtn.forEach(function(e) { e.addEventListener('click', function() { console.log('PL') this.parentNode.remove(); //remove the whole div containing input and delete button }) });

Problema, ahora cuando hago clic en el botón Eliminar, no sucede nada,

¿Alguna idea de lo que me estoy perdiendo aquí?

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

0

no está recuperando el .delete para agregar un oyente después de hacer clic en el botón más

así que eliminar el campo no tiene oyente

Puedo proponerle que agregue el oyente después de agregar el campo para resolver su situación

 var max_fields = 10; var wrapper = document.getElementById("domains-wrapper"); var add_button = document.getElementById("default-add"); var x = 1; add_button.addEventListener('click', function(e) { e.preventDefault(); if (x < max_fields) { x++; var deleteField = document.createElement('div'); deleteField.insertAdjacentHTML('beforeend', '<input id="delete" type="text" name="mytext[]"/>'); var a = document.createElement('a'); a.href= '#'; a.innerText = 'Delete'; a.classList.add('delete'); deleteField.append(a); wrapper.appendChild(deleteField); //add input box a.addEventListener('click', function() { var target = e.target || e.srcElement; console.log('PL') deleteField.remove(); }) } else { alert('You Reached the limits') } })
 <div id="domains-wrapper"> <div class="input-group"> <input name="domains" type="text" class="form-control domain-url" placeholder="Type valid url" value="" required=""> <div class="valid-feedback">Looks good!</div> <button id="default-delete" style="display: none;" class="default-delete delete-input-el domain-btn btn-sm border border-1" type="button"> </button> <button id="default-add" class="add-input-el added-input plus-button btn-sm border border-1 add_form_field" type="button"> <span class="add-icon">+ </span> </button> </div> </div>

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