通过循环从表单获取输入值并创建数组

时间:2018-12-27 08:52:48

标签: javascript arrays loops

我对JavaScript函数有疑问。如何从带有循环的表单输入中获取值?

我尝试

var values =[];

for (var h=1; h<=arrange;++h){
  values[h]=parseFloat($('#inputr2"+h+"').val()); 
}

如何在{em> id 中将h添加为inputr20 (if h=0)inputr21 (h=1),任何人都可以提供帮助?

2 个答案:

答案 0 :(得分:1)

尝试

var values =[];

for (var h=1; h<=arrange;++h){
  values[h]=parseFloat($(String("#inputr2"+h)).val()); 
}

答案 1 :(得分:1)

数组的索引基于0。您必须将值分配给索引h-1。如果您从0开始循环,则无需减少该时间。另外,您生成的字符串ID的格式不正确。您可以尝试以下方式:

var values =[];
var arrange = 2
for (var h=0; h<arrange;h++){
  values[h]=parseFloat($("#inputr2"+h).val()); 
  //Or you can simply use push() which does not require index.
  //values.push(parseFloat($("#inputr2"+h).val()));
}
console.log(values)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="inputr20" value="11.11"/>
<input id="inputr21" value="22.22"/>

如果要获取所有具有 id Starts With的输入值,可以使用map()get(),如下所示:

var values = $('[id^=inputr2]').map((i, el) => parseFloat($(el).val())).get();
console.log(values)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="inputr21" value="11.11"/>
<input id="inputr22" value="22.22"/>