Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

225
Views
El modelo emergente no se abre en for loop (HTML)

Estoy tratando de abrir un Pop up Model en for loop for para cada instancia, pero el pop up model se abre para la primera instancia, pero no se abre para otras instancias. Estoy usando Django en el bucle de plantilla.

plantilla.html

 {% for comment in comments %} <button id="ModelButton">Open Model</button> <div id="Model" class="flagModel"> <div class="modal-content"> <div class="modal-mod"> <div class="container-fluid"> <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{form}} <input type="submit"> </form> </div> </div> </div> </div> <script> var formModel= document.getElementById("Model"); var formButton = document.getElementById("ModelButton"); formButton .onclick = function () { formModel.style.display = "block"; } window.onclick = function (event) { if (event.target == formModel) { formModel.style.display = "none"; } } </script> {% endfor %}

Cuando coloco el JavaScript fuera del for loop , ni siquiera funciona para uno.

Lo he intentado muchas veces pero sigue sin funcionar. Cualquier ayuda sería muy apreciada. Gracias

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Especifique identificaciones únicas para los modales y pase el número de identificación a una sola función para abrir formularios modales al hacer clic en sus respectivos botones.

 {% for comment in comments %} <button onclick="openModal({{forloop.counter}})"> Open Model </button> <div id="Modal-{{forloop.counter}}" class="flagModel"> <div class="modal-content"> <div class="modal-mod"> <div class="container-fluid"> <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{form}} <input type="submit"> </form> </div> </div> </div> </div> {% endfor %} <script> function openModal(id) { var formModal = document.getElementById(`Modal-${id}`); if (formModal) { formModal.style.display = "block"; } } window.onclick = function (event) { if (event.target == formModel) { formModel.style.display = "none"; } } </script>
about 4 years ago · Juan Pablo Isaza Report

0

La identificación debe ser única en una página, debe usar la clase en bucle en lugar de la identificación,

Aquí he actualizado tu script que puede ayudarte.

 {% for comment in comments %} <button class="ModelButton">Open Model</button> <div class="flagModel Model"> <div class="modal-content"> <div class="modal-mod"> <div class="container-fluid"> <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{form}} <input type="submit"> </form> </div> </div> </div> </div> <script> var formButton = document.querySelectorAll(".ModelButton"); formButton.forEach(function(element) { element.addEventListener('click', function(eventObj) { var formModel = eventObj.currentTarget.nextElementSibling; formModel.style.display = "block"; formModel.addEventListener('click', function(event) { eventObj.currentTarget.style.display = "none"; }); }) }); </script> {% endfor %}
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!