如何使用javascript在django循环(模板)中获得多个输入值?

eaf3rand  于 2022-12-20  发布在  Go
关注(0)|答案(1)|浏览(131)

我正在尝试获取我的django模板中某个输入字段的值,表单在一个循环中,例如{% for p in prediction %} {% endfor %}
我使用这一简单的代码行从输入字段let odds = document.getElementById("odds").value获取id
基于我在一个django循环中有所有这些函数的事实,当i console.log(odds)时,我不应该得到所有的几率吗

{% for p in prediction.prediction_data.all %}
  <form action="#" method="POST">
     <input type="text" value="{{ p.odds }}" id="odds">
     <input type="number" value="" name="amount" id="amount" onkeyup="CalculateNewBalance()">

    <script>
      function CalculateNewBalance(){
          let odds = document.getElementById("odds").value
          let stake_amount_input = document.getElementById("amount")
                                                 
          console.log(odds);
    </script>
    </form>
{% endfor %}
[![enter image description here][1]][1]

mwngjboj

mwngjboj1#

不要使用***id***,而要使用***class***或***attribute***,因为*id*用于标识DOM中的唯一元素。此外,您不必将脚本放在循环中,也不必将表单放在循环中,而要将输入字段放在循环中。
最终代码如下所示

<form action="#" method="POST">
  {% for p in prediction.prediction_data.all %}
     <input type="text" value="{{ p.odds }}" class="odds">
     <input type="number" value="" name="amount" class="amount" onkeyup="CalculateNewBalance(event)">
  {% endfor %}
</form>

<script>
  function CalculateNewBalance(e){
      let t = e.target;
      let odds = t.previousElementSibling.value
      let stake_amount_input = t
      console.log(odds);
  }
</script>

运行代码示例
x一个一个一个一个x一个一个二个x

相关问题