使用 JavaScript 将值放入动态生成的输入类型中

Putting values into dynamically generated input types with JavaScript

我有 Range/Number 类型的同步输入,并动态生成与其值一样多的输入字段。

然后我有一个按钮,可以用任意值填充生成的输入字段。

每个动态生成的输入字段都有唯一的 ID,但 document.getElementById() 函数无法找到任何 ID,并且 returns 为空。

有没有办法更改 randomizeItemTypes() 函数中生成的字段的值?

function randomizeItemTypes(textbox) {
  var rackNum = textbox.replace("itemSlider", "").replace("numOfTypes", "");
  var numOfTypes = document.getElementById("numOfTypes1").value;
  for (var i = 0; i < numOfTypes; i++) {
    document.getElementById("rack" + rackNum + "." + i).value = 4;
  }
}

下面link是我代码的CodePen: http://codepen.io/cnc4ever/pen/LGNMEp

谢谢大家!

你的 rackNum 给出了一些字符串而不是数字 您的文本框 ID 类似于 rack1.0 , rack1.1 使用 document.getElementById("rack1" + "." + i).value = 4; 代替

 <html>
  <head>
    <title></title>
  </head>
   <body>
 <div class="itemsTypes1">
    <input id="itemSlider1" type="range" value="" min="1" max="10" step="1" onchange="printValue(this.value);drawItemTypes('itemSlider1');" />

     <input id="numOfTypes1" type="number" value="" min="1" max="10" onchange="printValue(this.value);drawItemTypes('numOfTypes1');" />
    <p id="itemTypes1Area"></p>
  <button id="randomize1" onclick="randomizeItemTypes()">Randomize</button>
</div>
<script type="text/javascript">
         function printValue(data) {

              var x = document.getElementById("itemSlider1").value = data;
              var y = document.getElementById("numOfTypes1").value = data;

            }
         function randomizeItemTypes() {
              var randomValue= Math.ceil(Math.random()*10);
              printValue(randomValue);
            }
      </script>
   </body>
 </html>