Javascript 如何在数组中添加输入值

Javascript 如何在数组中添加输入值,javascript,arrays,json,Javascript,Arrays,Json,我只是想问一下在数组中添加数据的问题。但是我想输入的数据来自一个输入框表。。下面是我一直在练习获取数据的代码: 我有一个add按钮,每次单击该按钮时,它都会将数据存储在my_data变量中 我想在我的变量中生成如下输出: my_data = [ {plank:"1",thickness:"4",width:"6",length:"8",qty:"1",brdFt:"16"}] my_data = [ {plank:"1",thickness:"4",width:"6",length:"

我只是想问一下在数组中添加数据的问题。但是我想输入的数据来自一个输入框表。。下面是我一直在练习获取数据的代码:

我有一个add按钮,每次单击该按钮时,它都会将数据存储在
my_data
变量中

我想在我的变量中生成如下输出:

my_data  = [ {plank:"1",thickness:"4",width:"6",length:"8",qty:"1",brdFt:"16"}] 
my_data  = [ {plank:"1",thickness:"4",width:"6",length:"8",qty:"1",brdFt:"16"},
     {plank:"2",thickness:"5",width:"6",length:"2",qty:"1",brdFt:"50"}] 
如果我再次添加另一个数据,它会添加那个变量,它是这样的:

my_data  = [ {plank:"1",thickness:"4",width:"6",length:"8",qty:"1",brdFt:"16"}] 
my_data  = [ {plank:"1",thickness:"4",width:"6",length:"8",qty:"1",brdFt:"16"},
     {plank:"2",thickness:"5",width:"6",length:"2",qty:"1",brdFt:"50"}] 
我现在的代码非常糟糕,所以请帮助我

当前我的输出:
1,4,6,4,1

迭代所有键,并添加值。 (由头脑编写的代码,未经测试)

var added={};
对于(var i=0;i
您可以使用:


您应该能够使用以下命令迭代所有文本框:

function add(e) {
    var obj = {};

    $('#addItem input[type="text"]')
        .each(function(){obj[this.name] = this.value;});
    myItems.push(obj);
}
其中,
myItems
是项目的全局容器,
#addItem
是表单

更新


如果您使用表单和提交按钮,那么您应该能够实现非JavaScript方法来添加您的信息,这样在未启用JavaScript的情况下,用户就可以访问该网站。

对不起,我只浏览了其他解决方案

$(document).ready(function() {
 var myData=[];
    var myObject = {} 
        $("input").each(function() {
            myObject[this.id]=this.value
        });
     alert(myObject["plank"])
   myData.push(myObject)
});

尝试此操作,很抱歉修改了您的表单,但效果很好:

HTML:


板材编号

宽度

长度

厚度

数量

Javascript:

$(document).ready(function() {

    var plank_data = Array();

    $('#add_plank_form').submit(function() {

        // Checking data
        $('#add_plank_form input[type="text"]').each(function() {
            if(isNaN(parseInt($(this).val()))) {
                return false;
            }
        });

        var added_data = Array();
        added_data.push(parseInt($('#plank_number').val()));
        added_data.push(parseInt($('#plank_width').val()));
        added_data.push(parseInt($('#plank_length').val()));
        added_data.push(parseInt($('#plank_thickness').val()));
        added_data.push(parseInt($('#plank_quantity').val()));

        $('#add_plank_form input[type="text"]').val('');

        plank_data.push(added_data);

        // alert(JSON.stringify(plank_data));

        // compute L x W x F for each plank data
        var computed_values = Array();
        $('#add_plank_result').html('');
        for(var i=0; i<plank_data.length; i++) {
            computed_values.push(plank_data[i][1] * plank_data[i][2] * plank_data[i][3] / 12);
            $('#add_plank_result').append('<input type="text" name="plank_add[]" value="' + computed_values[i] + '"/>');
        }

        return false;
    });
});
$(文档).ready(函数(){
var plank_data=Array();
$('add#plank_form')。提交(函数(){
//检查数据
$('#添加表格输入[type=“text”]”)。每个(函数(){
if(isNaN(parseInt($(this.val())){
返回false;
}
});
var added_data=Array();
添加了_data.push(parseInt($('#plank_number').val());
添加了_data.push(parseInt($('#plank_width').val());
添加了_data.push(parseInt($('#plank_length').val());
添加了_data.push(parseInt($('#plank_thickness').val());
添加了_data.push(parseInt($('#plank_quantity').val());
$('#添加表格输入[type=“text”]).val(“”);
plank_data.push(添加_数据);
//警报(JSON.stringify(plank_数据));
//计算每个板材数据的L x W x F
var计算值=数组();
$('#add_plank_result').html('');

对于(var i=0;我想知道答案,但我仍然不能使用它,因为我仍然不知道如何将我的输出作为json。也许我会使用这个,一旦我可以有一个json输出。我现在的输出是'1,4,6,4,1'。非常好。它非常有效,但我只是想知道如何获得
“Test”:
然后扔掉它。@jayAnn:我已经更新了我的答案,以迭代表单中的每个文本框。它应该会产生你想要的结果。JSFIDLE也已经更新。用一堆加载的警报向你发送垃圾邮件是很烦人的。但我只是想知道如何添加一个输入框,其中包含来自上述数据结果的值。我想如果数组中有几个木板信息,如何计算值?我的意思是,如果数据是
[{1,2,3,4,5},{7,8,9,4,4}]
,那么计算值将是
[2,24]
?不,不是那样。我想在我的json中添加板英尺计算。它是这样的:
[{“plank_-no”:“1”,“thickness”:“4”,“width”:“6”,“length_-t”:“8”,“qty”:“7”,“board_-ft”:“16”}]
。我想感谢你在这方面帮了我的大忙。我现在已经明白了。顺便说一句,Kaiser,你以前的代码真的帮了我的忙。这就是我现在使用的代码,但我的代码仍在一张桌子里:)。再次感谢你。
$(document).ready(function() {

    var plank_data = Array();

    $('#add_plank_form').submit(function() {

        // Checking data
        $('#add_plank_form input[type="text"]').each(function() {
            if(isNaN(parseInt($(this).val()))) {
                return false;
            }
        });

        var added_data = Array();
        added_data.push(parseInt($('#plank_number').val()));
        added_data.push(parseInt($('#plank_width').val()));
        added_data.push(parseInt($('#plank_length').val()));
        added_data.push(parseInt($('#plank_thickness').val()));
        added_data.push(parseInt($('#plank_quantity').val()));

        $('#add_plank_form input[type="text"]').val('');

        plank_data.push(added_data);

        // alert(JSON.stringify(plank_data));

        // compute L x W x F for each plank data
        var computed_values = Array();
        $('#add_plank_result').html('');
        for(var i=0; i<plank_data.length; i++) {
            computed_values.push(plank_data[i][1] * plank_data[i][2] * plank_data[i][3] / 12);
            $('#add_plank_result').append('<input type="text" name="plank_add[]" value="' + computed_values[i] + '"/>');
        }

        return false;
    });
});