[英]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.