(踩坑)项目需求:扫码枪获取条形码信息后,根据信息请求数据,若表格有该条数据存在,则重量在原有的数据基础上加上新的重量,数据不存在则创建表格行数据

2 篇文章 0 订阅

这是一个坑啊,写了我几天,最后靠着我大佬的一个几行的获取输入框的name属性的函数,就解决了,特此记录一下。

//定义一个数组存放不重复的数据
var goodsNameArray = [];

//扫码枪获取条形码

$(document).keyup(function(event){

if(event.keyCode == 13){	
	//截取货号	
	var Art_No = $(".input-value").val().slice(2,6)
	//截取重量
	var weight = parseFloat($(".input-value").val().slice(6,12))/1000
	//条形码框清空
	$(".input-value").val("")
	
	//截取货号后请求数据
	$.ajax({
		type: 'POST',
		url: '{:url("saleorder/oneGoods")}',
		data: {Art_No:Art_No},
		success: function(res){

			//判断goodsNameArray数组是否存在相同商品
			var result = goodsNameArray.some(item => {
				if (item.goods_name == res[0].goods_name) {
					return true
				}
			})

			// 如果arr数组对象存在就会返回true,不存在返回false
			if (result) {
				var goodsRepetition = String(res[0].goods_property_id)
				var goodsWeight = weight
				
				$("input[name^='goods_property_id']").each(function (i, n) {
					var val = $(n).val();//取得输入框值
					var names = n.name;//取得输入框的name
					var ids = n.id//取得输入框id
					
					if(goodsRepetition == val){					
						var ax = names.slice(18,20)
						var axName = ".input_fields_wrap3 .table-myclass input[name='num["+ax+"]']"
						var axWeight = Number($(axName).val()) + goodsWeight

						$(axName).val(axWeight)
						$(axName).focus()
						$(".input-value").focus();
						
					}
				});

			}else {
				goodsNameArray.push(res[0])
			}

			if (x3 < max_fields3) {
				//获取当前创建的输入框的数量
				var inputArray = $(".input_fields_wrap3 input");
				var str = String(inputArray.length);
				var num = Number(str.substring(0, 1))
				var numX3 = num + 1;
				x3 = numX3;

				if (goodsNameArray[x3 - 1]) {
					//获取商品id                        
					var goods_id = goodsNameArray[x3 - 1].goods_id;

					//获取商品名称                        
					var goods_name = goodsNameArray[x3 - 1].goods_name;

					//获取计量单位                        
					var goods_units = goodsNameArray[x3 - 1].units;

					//属性id                      
					var goods_property_id = goodsNameArray[x3 - 1].goods_property_id;

					//规格                        
					var goods_spec = goodsNameArray[x3 - 1].goods_spec;

					//价格                        
					var goods_price = goodsNameArray[x3 - 1].sales_price;

					//获取商品编号                    
					var goods_no = goodsNameArray[x3 - 1].goods_no;

					//获取供应商id
					var supplier_id = goodsNameArray[x3 - 1].supplier_id;

					//行数
					var trnum = $(".input_fields_wrap3").find("tr").length;
					trnum = trnum + 1;

					var addhtml = '';
					addhtml = '<tr class="text-c">' +
						'<td>' + trnum + '</td>' +
						'<td class="text-l goodsNameVal">' + goods_name +
						'<input type="hidden" class="input-text" name="goods_name[a' + x3 + ']" value="' + goods_name + '">' +
						'<input type="hidden" name="goods_id[a' + x3 + ']" value="' + goods_id + '">' +
						'<input type="hidden" name="goods_spec[a' + x3 + ']" value="' + goods_spec + '">' +
						'<input type="hidden" name="supplier_id[a' + x3 + ']" value="' + supplier_id + '">' +
						'<input type="hidden" name="goods_spec[a' + x3 + ']" value="' + goods_spec + '">' +
						'</td>' +
						'<td class="text-c">' + goods_spec + '</td>' +
						'<td class="nowrap1">' +
						'<input type="text" class="input-text text-r prices" name="QTYC[a' + x3 + ']" id="QTYC_a' + x3 + '" value="" readonly>' +
						'<input type="text" class="input-text text-c units" name="unitsc[a' + x3 + ']" id="unitsc_a' + x3 + '" value="' + goods_units + '" readonly>' +
						'</td>' +
						'<td class="nowrap1 table-myclass"><input type="text" class="input-text text-r fieldtxt" name="num[a' + x3 + ']" id="num_a' + x3 + '" fieldid="a' + x3 + '" value="' + weight + '"></td>' +
						'<td class="nowrap1">' + goods_units +
						'<input type="hidden" class="input-text text-c fieldtxt" name="units[a' + x3 + ']" id="units_a' + x3 + '" value="' + goods_units + '" >' +
						'<input type="hidden" name="goods_property_id[a' + x3 + ']" value="' + goods_property_id + '">' +
						'</td>' +
						'<td class="nowrap1 table-uprice"><input type="text" class="input-text text-r fieldtxt" name="price[a' + x3 + ']" id="price_a' + x3 + '" value="' + goods_price + '" fieldid="a' + x3 + '"></td>' +
						'<td><input type="text" class="input-text text-r fieldtxt table-amounts" name="amounts[a' + x3 + ']" id="amounts_a' + x3 + '" value="" onBlur="moneys()"></td>' +
						'<td><a href="javascript:;" class="ml-5 remove_field" style="text-decoration:none;"><i class="Hui-iconfont">&#xe631;</i></a></td>' +
						'</tr>'

					$(".input_fields_wrap3").append(addhtml);
					var namenum = '.input_fields_wrap3 #num_a' + x3;
					$(namenum).focus();
					$(".input-value").focus();

				}
				x3++;
			}
		}
	});
}

})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值