如何使用onchange事件将附加表行的值存储在数组变量中?

时间:2016-03-15 09:07:26

标签: javascript jquery arrays ajax

我有一个ajax函数,它从数据库中获取值,然后将这些数据附加到表中。现在,有些实例会从数据库中检索到2条或更多条记录,因此还会附加2个或更多表格行。我的问题是,如果2或者我将如何将这些值存储在数组变量中桌子上附有更多的值?这是代码。谢谢你的帮助。

$.post("{{ url('create_po') }}", { 'prod_IDs': valArray }, function(data){
var obj = JSON.parse(data);
for(var i = 0; i < obj.prodval.length; i++){
    txt += "<tr class='info '><td><input type='number' class='form-control' style='width:100px;' value='0'/>"+
         "</td><td>"+obj.prodval[i].unit+
         "</td><td>"+obj.prodval[i].pharmaceutical+
         "</td><td>"+obj.prodval[i].packaging+
         "</td><td><input type='text' class='form-control' style='width:100px;' value='"+obj.prodval[i].price+"' disabled=disabled />"+
         "</td><td><input type='text' class='form-control' style='width:100px;' value='0' disabled=disabled />"+
         "</td></tr>";
}
 $("#tbl-po-list").append(txt);
});

表格

<table id="tbl-po-list">
<tbody id="po-create"></tbody>
</table>

绑定函数以获取值onchange

$(function(){

var arrayVar = [];

            $('#tbl-po-list').on( 'change keyup' , 'input[type="number"]' ,function(){

            $(this).val();
            $(this).parents('.info').find('.price').val();
            $(this).parents('.info').find('.total').val());

            });

        }); 

我只是不知道如何迈出这一步。如何将值保存在数组变量&#34; arrayVar&#34;在onchange事件期间?如果有2行怎么办?我该如何保存?

附加行示例图片 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

只需将其存储在对象中:

var data = {
   qty: $(this).val(),
   price: $(this).parents('.info').find('.price').val(),
   total: $(this).parents('.info').find('.total').val()
}

然后当你检索它时(根据你的图像):

arrayVar[0].price // 45
arrayVar[1].price // 12