在进行问卷调查时,需要将表中的统计问题记录为JS的全面知识。
基本要求如下:
核心HTM如下:
复制代码代码如下所示:
(3)2010市疾病预防
控制中心信息化建设的信息来源和分布
情况。
单位:一万元,小数点后1位。
政府财政
项目基金>
单位自筹资金
其他基金
总
直接支出
软件
钱 uff1a量
源:
硬件 钱 uff1a量
源:
操作和
维护 钱 uff1a量
源:
其他投入
钱 uff1a量
源:
资金分配
钱 uff1a量
源:
总
不难看出这样的基本要求,其基本思想是在焦点丢失的同时更新数据并更新相应的
文本框,难点在于获得需要添加到这些文本框中的值。
1如果你只知道总文本框ID,你如何获得一个需要累积的文本框编号
在第一行统计分析,可以
发现,文本框和文本框需要汇总统计
都是在相同的TR标签,他们都有一流的数字。例如,文本框,82row1需要计算,text_4780,text_4782,text_4783
他们都是在同一个tr标签,所有的类都有数字(这样你就可以将文本框text_4784不需要计数)。
因此,基本思想是要找到需要基于这种关系,统计文本框为例,对82row1,你需要找到文本框text_4780,text_4782,text_4783。
已经测试过的基本js代码如下所示:
复制代码代码如下所示:
功能getonerowallchild(totalid)
{
VaR idlist = { };
无功tdlist = $(# + totalid)。父(母'td)。(孩子们)(TD); / /统计文本框的父节点TD TR的父母,然后把TR的子节点,得到所有的TD同一行
美元。每个(tdlist,
函数(i,n){ / /周期TD
无功投入=美元(N)。儿童(
输入{
类型中}); / /文本框中得到TD
如果(输入,长度> 0)
{
美元。每个(输入功能(J,iteminput){ / / TD在文本框
项目= $(var iteminput);
如果(item.hasclass(数字)) / /判断是不是在一个文本框,文本应排除列
{
var id = item.attr(ID);
IdList.push(ID);
}
});
}
});
/ / var名单= idlist.join(
/ /警报(名单);
BindBlur (idList, totalId);
}
函数的BindBlur(idlist,totalid) / /结合模糊失去焦点事件
{
美元。每个(idlist,功能(J,项){
项目;
$(#+身份证(Blur)(功能)(idlist,totalid){ updatesum });
});
}
功能updatesum(idlist,totalid) / /更新统计信息
{
var总和= 0;
美元。每个(idlist,功能(J,项){
项目;
VaR值= $(+身份证# )(。Val);
如果(美元。ISNUMERIC(值))
{
总和+ = parseFloat(价值);
}
});
$(# + totalid)瓦迩(和);
}
2,每行获取文本框的思想,考虑到每一列的思路基本上与每行的思路相同,但在
修改过程中仍有许多不同之处。
测试代码如下所示
复制代码代码如下所示:
功能getonecolumnallchild(totalid,指数)
{
VaR idlist = { };
无功trlist = $(# + totalid)。父('td)。母(TR)。家长(孩子们)(TR); / / / /以统计文本框的父节点的父TD TR表的父,然后把表的子节点,所有TR
美元。每个(trlist,函数(i,n){ / /遍历所有TR
无功tdlist = $(N)。儿童(TD)。
如果(tdlist。长度>0)
{
无功投入指标= 0;
美元。每个(tdlist,功能(J,项){ / /遍历所有的TD
如果由于直接支出,如果(如果索引为),那么这样的数据会导致
错误,因为TD的第一行,除了第一行之外,包含一个更少的TD。
{ /
无功inputlist = $(项)。儿童(输入{类型中});
如果(inputlist。长> 0){
美元。每个(inputlist,函数(k,iteminput){ / /遍历所有的文本框
项目= $(var iteminput);
如果(item.hasclass(数字)){
投入指标+ +;
如果(投入指标= =指数){ / /
退出指定列的文本框
IdList.push(item.attr(ID));
}
}
}); / /结束inputlist
} / /如果(inputlist。长度>0)
}); / /结束tdlist
} / /如果(tdlist。长度>0)
}); / /结束trlist
BindBlur(idlist,totalid);
/ / var名单= idlist.join(
/ /警报(名单);
}
总结:第一次遇到这样的问题,真的没有更好的主意,这是一个初步的
解决方案,但它是非常灵活的,例如,每个单元只能有一个需要计数的文本框,多人可以出错,但如果它是最简单的,它将适应更复杂的情况。