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