簡體   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