JS доступ к каждому отдельному элементу в forloop

#javascript #django #for-loop

#javascript #django #for-цикл

Вопрос:

Я хочу, чтобы кнопка в цикле for могла независимо запускать ту же функцию для click the hidden во время click the , но без ответа после нажатия.

html for-цикл:

          {% for order_item in orders %}
          <a class="btn btn-warning" >Upload File</a>
          <input type="file" id="img-file{{ forloop.counter }}" hidden="hidden"/>
          <button type="button" onclick="function upload_img({{ forloop.counter }}){}">Upload</button>
        {% endfor %}
  

js:

 <script>
function upload_img(x) {
    const realFileBtn = document.getElementById('img-file' x);

    realFileBtn.click()

}
</script>
  

Комментарии:

1. Есть ли ошибка?

2. function не должно быть в onclick…. Вы определяете функцию при каждом onclick, а не вызываете ее

Ответ №1:

Вам нужно вызвать функцию внутри onclick , а не определять.

 onclick="upload_img({{ forloop.counter }})"
  

Ответ №2:

Вы определяете функцию в теге button, и она вызывается где угодно, что неправильно, вы должны вызвать ее где угодно.

Создайте функцию с именем upload_img и вызовите ее внутри onclick следующим образом

onclick="upload_img({{ forloop.counter }})"