【问题标题】:Take input value from form with loop and create array使用循环从表单中获取输入值并创建数组
【发布时间】:2018-12-27 08:52:47
【问题描述】:

我的 JavaScript 函数有问题。如何使用循环从表单输入中获取值?

我尝试类似的东西

var values =[];

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

如何在 id 中添加h,如inputr20 (if h=0)inputr21 (h=1),任何人都可以帮忙?

【问题讨论】:

  • 正确转义你的字符串。 " 以 " 结尾并且 ' 以 ' 结尾,所以 '#inputr2' + h 但是 JQuery 可能有处理表单的方法,所以请查看文档以获取替代方案。

标签: javascript arrays loops


【解决方案1】:

试试

var values =[];

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

【讨论】:

    【解决方案2】:

    数组的索引是从 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"/>

    【讨论】:

      猜你喜欢
      • 2018-01-24
      • 2012-10-13
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      相关资源
      最近更新 更多