javascript - JSON 的多个输入字段

标签 javascript jquery json

我有一个表单,其中包含如下图所示的输入字段。每次单击添加按钮时,都会附加包含输入字段的行。 enter image description here

html代码是这样的:

<div class="row">
         <div class="row ifields">
                <div class="col-sm-3 form-group">
                </div>
                <div class="col-sm-2 form-group">
                    <input type="text" class="form-control" name="pname" placeholder="Product Name" />
                </div>
                <div class="col-sm-2 form-group">
                    <input type="number" min="1" class="form-control text-center" name="pquantity" placeholder="Product Quantity" />
                </div>
                <div class="col-sm-2 form-group">
                    <select class="form-control text-center" name="qtype">
                        <option value="g">g</option>
                        <option value="Kg">Kg</option>
                        <option value="ml">ml</option>
                        <option value="L">Lt.</option>
                        <option value="pc">Pc</option>
                    </select>
                </div>
                <div class="col-sm-2 form-group">
                    <input type="text" class="form-control text-center" name="pcost" placeholder="Product Cost" />
                </div>
                <div class="col-sm-1"><button class="btn btn-default add-btn">Add</button></div>
              </div>
    </div>
    <div class="row iclone"></div>
 </div>

和 Jquery 代码:

$(document).ready(function(){
        $('.add-btn').click(function(){
            var cl = $('.ifields').first('.row').clone(true);
            $('.iclone').append(cl);

        });
});

我想遍历每一行并创建一个 JSON 文件。例如:

[{
  "product" : "A",
  "quantity" : "100",
  "quantitytype" : "g",
  "cost" : "100"
},
...
....
]

如何创建此 JSON 输出?请指导。

最佳答案

您可以使用 map() 来创建所需的对象数组。试试这个:

var data = $('.row.ifields').map(function() {
    return {
        product: $(this).find('[name="pname"]').val(),
        quantity: $(this).find('[name="pquantity"]').val(),
        quantityttype: $(this).find('[name="qtype"]').val(),
        cost: $(this).find('[name="pcost"]').val()
    };
}).get();

然后您可以根据需要使用 data 数组 - 大概是在 $.ajax() 调用中。

Working example

关于javascript - JSON 的多个输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32887990/

相关文章:

php - $http.get JSON 从 PHP 不工作

javascript - ArrayBuffers 有最大长度吗?

javascript - 如何诊断 Firefox 中的 "setting a property that has only a getter"问题

javascript - 单击一个类以显示一个 li

javascript - 使用 .addClass 函数时单击时不会显示边框

javascript - JQuery Ajax Json 响应不起作用

javascript - 从 console.log() 自定义文本

javascript - 向列表项添加 anchor 标记会使列表项消失?

javascript - 如何修复 table thead 和可滚动的 tbody(thead 包含 3 行)

php - 从 Web 服务器接收数据不起作用( Volley 库 android)