做这个例子,主要是我在工作当中遇到一个主表的明细表的操作计算问题,也用了不少时间。操作计算的方式是这样的。

这个功能是在.net语言当中实现,操作过程当点击添加行,添加第一行时,当我输入金额的时候,累积支付=金额,当点击添加行时,如果是第二行,输入金额,累积支付=第二行金额+第一行的累积支付,如果是第三行,输入金额,累积支付=第三行金额+第二行的累积支付,如图。

这个其实最主要的是控件的值获取问题,当金额控件的光标移开时,如果是第一行就直接赋值就ok,但是在第二行。。。。第n行时如何将最后一个文本框累计支付=第一行金额+第n行的累计支付,于是我就想如何在js里面可以在我移开最后一个金额文本框的时候获取前面所有的控件id,然后在js里面分割获取document.getElementById("xx").value,具体js如下

//objJE为金额,objLJ为累计支付字段,objBL为累计支付比例
function _doCal(objJE, objLJ, objBL) {
var je = 0; //当数据为第一行的时候
if (objJE.indexOf(";") == -1) {
if (document.getElementById(objJE).value != "") {
je = parseFloat(document.getElementById(objJE).value);
}
} else { var arrJE = objJE.split(";");
for (var i = 0; i < arrJE.length; i++) {
if (document.getElementById(arrJE[i]).value != "") {
je += parseFloat(document.getElementById(arrJE[i]).value);
}
}
}
//获取金额
document.getElementById(objLJ).value = je; //变更调整总价
var _htgbhzj = document.getElementById("<%=txt_bgzj.ClientID %>").value;
// 总支付比例 = 累计支付额 / 变更调整总价
document.getElementById(objBL).value = (je / _htgbhzj).toString(); }

  做到这里的话,接下来计算就容易了。

例子源码

主表当中明细表字段的金额计算问题,操作控件是在gridview+aspnetPage的更多相关文章

  1. 新浪微博客户端(23)-计算Cell内控件的frame

    DJStatusCellFrame.m #import "DJStatusCellFrame.h" #import "DJStatus.h" #import & ...

  2. Microsoft Dynamics CRM 增删改子表汇总子表的某个字段到主表的某个字段(通用插件)

    背景 经常有某个汇总子表的数量到主表的总数量,或者汇总子表的总价到主表的总价这种需求. 传统的做法: 1.就是为每个子表实体单独写成一个插件,但是这样不好复用. 2.主表的汇总字段是汇总货币类型,但是 ...

  3. js中进行金额计算parseFloat

    在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题var price = 10.99;var quantity = 7;var needPay = parseFloat(pr ...

  4. 关于DEDECMS自定义模型当中添加自定义字段后在后台添加内容后不显示解决方案

    用DEDECMS的时间也不长,最近在做一个站时,就遇到了这个问题(自定义字段在后台不显示内容)中添加自定义字段后在后台编辑打开后发现我之前添加的内容不显示,如果是只是看看不单击确定的话,那么在前台数据 ...

  5. dedecms(织梦)自定义表单后台显示不全 自定义模型当中添加自定义字段后在后台添加内容后不显示解决方案

    我们常用dedecms 自定义表单做留言功能.但是偶尔会遇到这样一个问题,就是 在前台提交表单后..后天显示不全.特别是中文字符  都不会显示, 比如下图: 这是因为  如果你织梦是gbk的话那就对了 ...

  6. django模型中, 外键字段使用to_filed属性 指定到所关联主表的某个字段

    在django项目的开发过程中,在设计模型时一开始将主键设置成了一个自定义的字段,但是在创建搜索索引时却发现必须要存在一个id的字段,并且为主键(不知道是否是项目一开始就这样配置的原因), 但此时表结 ...

  7. js中进行金额计算

    js中进行金额计算parseFloat   在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题var price = 10.99;var quantity = 7;var n ...

  8. js中进行金额计算 parseFloat 会产生精度问题

    在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题 var price = 10.99;var quantity = 7;var needPay = parseFloat(p ...

  9. JAVA中高精度金额计算

    一般java代码中遇到高精度金额计算,日常使用bigDecimal类型. 在使用BigDecimal类来进行计算的时候,主要分为以下步骤: 1.用float或者double变量构建BigDecimal ...

随机推荐

  1. js & jquery数组介绍

    (转自:http://www.jb51.net/article/30793.htm) 1.数组的创建 var arr=new Array(); 2.查找数组中的元素 for(var i=0;i< ...

  2. javaScript-条件语句优化

    1.多重判断时使用 Array.includes test = (fruit: string) => { if (fruit == 'apple' || fruit == 'strawberry ...

  3. Django与数据库操作

    Django与数据库操作 数据库连接的方法 web 框架 django --- 自己内部实现 (ORM) + pymysql(连接) Flask,tornado --- pymysql SQLArch ...

  4. PhotoPicker 从头到脚

    1. 简介 PhotoPicker, 是一款开源的图片选择器.效果上和微信相似. 2. 使用方法 2.1 添加依赖 dependencies { compile 'me.iwf.photopicker ...

  5. ubuntu在anaconda2下安装anaconda3环境 && 在Pycharm中配置Python3

    适合在已经装有anaconda2环境的机器上配置anaconda3环境(或在有anaconda3的环境下再配置2). 1. 下载 anaconda3 下载地址: 推荐清华镜像      https:/ ...

  6. Consul做服务发现

    使用Consul做服务发现的若干姿势 https://www.cnblogs.com/bossma/p/9756809.html 从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后 ...

  7. python3.x 函数的参数

    2016-08-09  15:06:18 位置参数 调用函数时,参数按照位置依次传递给函数 def show(a1,a2,a3,a4): print(a1,a2,a3,a4) show('s','h' ...

  8. HTML标签01

    html标签:table 表格 (里面加的属性指整个表格的)tr 行td 单元格 (可以换成th,只有在单元格里面才能输入文字)th 表头 默认让文字居中 文字还会显示加粗状态 font 文字标签 属 ...

  9. ORA-00845 : MEMORY_TARGET not supported on this system(调大数据库内存无法启动)

    问题描述:调大数据库内存后,启动数据库报 ORA-00845 : MEMORY_TARGET not supported on this system . -- 调大数据库内存后,数据库启动报错[ro ...

  10. 谷歌设置支持webgl

    浏览器报错: could not initialize WebGl 因为谷歌默认不支持WebGl 在浏览器器中输入 about:flags 然后开启:覆盖软件渲染列表,覆盖内置的软件渲染列表,并对不支 ...