我对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)
,任何人都可以提供帮助?
答案 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"/>