繁体   English   中英

来自表单输入字段的JS关联数组

[英]JS associative array from form input field

我的表单包含多个输入字段。 例如:

<input type="number" class="attribute-class form-control"  id="Size" min="1" max="99999" name="attribute[]">
<input type="number" class="attribute-class form-control"  id="weight" min="1" max="99999" name="attribute[]">

现在,我要创建一个数组,类似于此array[size => 10, weight=> 20]

那有可能吗? 到目前为止,我使用了在另一个主题上找到的此函数,但是我得到了仅包含fields值的常规数组。

var attribute = $("input[name='attribute[]']").map(function(){
            return $(this).val();}).get(); 

这样做的原因:我必须根据用户选择的产品类型,在Ajax窗体中加载其他输入字段,然后将字段名称和值存储在数据库中。 这是我唯一想到的选择。

您需要创建一个对象,而不是一个数组。 您想将ID用作对象中的属性名称。

 $("#x").click(function() { var attribute = {}; $("input[name='attribute[]']").each((i, input) => attribute[input.id.toLowerCase()] = input.value); console.log(JSON.stringify(attribute)); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> Size: <input type="number" class="attribute-class form-control" id="Size" min="1" max="99999" name="attribute[]"><br> Weight: <input type="number" class="attribute-class form-control" id="weight" min="1" max="99999" name="attribute[]"> <br> <button id="x">Click</button> 

似乎您想创建一个对象来存储输入字段中的值,

也许尝试这样的事情:

    var myObject = {};
    document.querySelectorAll("input[name='attribute[]']").forEach(element => {
       myObject[element.id] = element.value
    });
    console.log(myObject); // <-- this should have your values in it now.

JavaScript没有关联数组,请使用非常相似的JavaScript对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM