2017年5月10日,今天工作中遇到了三个问题:1.采购单新增之后,备注里面总是会自动保存一个逗号。
<div class="box1" whiteBg="true">
<div class="dataarea" id="dataarea"></div>
<form id="queryform" action="${ctx}/brandpurchaseorder/save" method="post">
<div class="btop-val0 border-solid-gray">
在程序中ja中dataarea中有一个remarks备注属性,在jsp页面也有一个备注的remarks属性,如果dataarea放在jsp页面的form表单中一起提交的话,js会将两个相同的字段拼接,中间以逗号隔开,以这样的形式传入后台,所以往数据库保存的时候就会有逗号。解决方法是将dataarea写在form表单的外面。然后在js中单独封装,再随form表单一起提交到后台。
var data = {};
$.each(gridData, function (i, record) {
data['purchaseorderdetails[' + i + '].goodsid'] = record.id;
data['purchaseorderdetails[' + i + '].quantity'] = record.quantity.toString();
data['purchaseorderdetails[' + i + '].price'] = record.purchaseprice;
data['purchaseorderdetails[' + i + '].amount'] = record.amount.toString();
data['purchaseorderdetails[' + i + '].remark'] = record.remark;
});
2.今天遇到的第二个问题就是,在采购单审核的时候,提交后,审核意见没有存储。原因:
<tr>
<td>审核意见:</td>
<td>
<textarea class="height-val35 width-perc90 mtop-val5"
id="opinion"
name="opinion"></textarea>
<span class="star" id="opinionstar">*</span></td>
</tr>
虽然在jsp页面的form表单中定义了 name="opinion",但是在js中是以ajax的形式提交的,这样提交上去的就只有businessid,而不是form表单的内容。如果想要额外传其他内容,可以采取拼接的方式。
$.ajax({
url: _config.URL_COMMIT,
type: 'POST',
data: {'businessid':id},
$.ajax({
url: _config.URL_RETURN,
type: 'POST',
data: {'businessid': id, 'opinion': _model.$opinion.val()},
提交form表单可以采取这种方式:
_model.$brandOrderForm.ajaxSubmit({
data: data,
3.使用步进器添加数量后,件数就不能显示了。原因:
totals = Decimal.add(o.quantity, totals);
Decimal.add(number,number)这样计算之后,数据类型就会从number变成object。所以在jsp页面中就会显示不出来,解决方法:
_model.$totals.html(_config.totals.toString());可以加toString转成字符串,也可以 _model.$totals.html(Number(_config.totals));转成数字类型。