项目实践——利用标记避免表格行之间出现被重复赋值,同时避免去除自身
来源:互联网 发布:类似社交网络的电影 编辑:程序博客网 时间:2024/05/20 13:16
问题背景
点击表格中的多行,通过填写表单号,来进行后续的操作。。。 在我们填写表单号时,如何才能避免填入的表单号重复呢? 还有一个问题,在去除重复时,我们必须判断比较重复的行不是自身。其实在解决这个问题时,最开始,我以最普通的思维来解决:
顺序思维
我所指的是一条一条添加,也就是按顺序填写。这个时候,每次在判断时,只需要判断最后一条与前面的所有信息,只要没有重复即可认为不存在重复信息了? 到这里,你是否认为这样正确呢?先按照这样解决,看一下我的解决方案:
//第一次循环获取总共表单编号的个数 var count=0;//总个数 jq("input[itemvarname='item100'][itembilltype='2']").each(function(){ count++; }) jq("input[itemvarname='item100'][itembilltype='2']").each(function(i,object){ //如果输入的单据号是最后一条的话,需要将最后一条排除出重复序列 if(i !=count-1){ //判断如果不是最后一个节点 //判断是否与之前的节点值重复 if(object.value==billNumber){ alert("输入的单据号已经存在,请重新输入!"); obj.val(""); return } } })
这样做的核心是:只需要计算出总共的条数,这样我就可以判断出当前填的最后一条数据是第几条数据,这样只要将这条数据与之前的所有数据进行比较,没有重复即可。听起来似乎已经很完美了,不是吗?
打破常规
后来,我忽然想到,假如,我现在全部填完了,但是忽然想要该其中的一个,也许就是改的第一个,或者第二个。。。这个可不一定哦?这个时候怎么办?之前的那种想法可就不成立了。如果利用上面那种思维,通过个数来标记已经很不现实了,所以这次,我用了flag来进行标记。具体解决方案如下:
//去除重复 var flag=0; jq("input[itemvarname='item100'][itembilltype='2']").each(function(i,object){ if(billNumber==object.value){ flag=i; //做一个标记 } }) jq("input[itemvarname='item100'][itembilltype='2']").each(function(i,object){ if(flag !=i && object.value==billNumber){ alert("输入的单据号已经存在,请重新输入!"); obj.val(""); obj.parent().siblings().find("input[itemvarname='item46'][itembilltype='2']").attr({value:""}); obj.parent().siblings().find("input[itemvarname='item115'][itembilltype='2']").attr({value:""}); return } })
通过做标记来解决赋值重复问题。当然这种解决方法有它的局限性,不知道你看出来了没啊?但是却很适合我的这种环境哦。局限性:由于多次被标记会导致flag被覆盖,所以这种避免重复的方式只适合最多可能存在一次重复的情况。
2 0
- 项目实践——利用标记避免表格行之间出现被重复赋值,同时避免去除自身
- 项目实践——JS为当前行内节点赋值避免覆盖解决方案
- 避免重复同时执行shell
- UFT导入表格时避免重复导入
- 避免重复
- 利用<include />标签来避免重复渲染
- 避免表格被撑开变形
- css 避免表格被撑开
- 避免软件失败的7个关键实践——来自项目管理群的讨论
- Excle表格去除重复行
- ios 避免两个button同时被点击
- 避免Web项目名出现Maven webapp
- iOS避免出现多控件同时点击的问题
- 怎样避免赋值空行
- 事件分发机制——避免同时点击两个按钮同时触发两次事件
- QT避免应用程序被重复打开
- 如何避免头文件被重复包含
- 避免重复定义
- cocos2dx通过http获取网络时间校对
- Python教程(二)显示行号
- ubuntu 安装星际译王及离线词库(图形界面和命令行版)
- 内存管理方案
- 简单的桶排序
- 项目实践——利用标记避免表格行之间出现被重复赋值,同时避免去除自身
- KMP算法之最终实现及优化 – 数据结构和算法39
- 医药采购之供货商药品目录控制
- Thinkpad X240在Centos 7下使用ID 138a:0017或者vfs5011指纹识别
- Storm - Exception - backtype.storm.generated.InvalidTopologyExcept :null | 那伊抹微笑
- iphone launchimage
- 树 – 数据结构和算法40
- 排序算法小结
- Phthon学习笔记1