ecology8泛微二次开发-流程表单关于明细表中对日期的判断
作者:互联网
对于明细表日期的判断首先需要知道一下几个点:
1.submitdtlid这个字段代表的含义,这个字段加上数字代表的是每个明细表中对应的ID,如下所示:
这里有三个明细表,表一对应的ID值是 submitdtlid0,表二是submitdtlid1,表三是submitdtlid2,以此类推。
这个字段是隐藏的input的id值,input相对应的有value,里面的value的值代表的是每个明细表中的行数,如下:
可以看出明细表一有三行数据,则submitdtlid0对应的value值就是value=“0,1,2”,是一个集合。如图:
要想对明细表中的日期进行判断就需要把每行明细表中的日期都进行判断。知道上面这些就好办多了。
2.所判断日期对应的每一行记录的id值,如下:
如果是所要判断日期的第一条记录,日期字段的id为field36086_0,第二条中日期的字段就为field36086_1,以此类推。
3.还需要对日期的处理,我放到代码中了,解决问题的代码如下:
<!-- script代码,如果需要引用js文件,请使用与HTML中相同的方式。 --> <script type="text/javascript"> $(document).ready(function() { checkCustomize = function() { var num = 0; //设置一个计数器记录明细表每行不符合日期的数量 var ids = $('#submitdtlid0').val().split(',');//根据明细表submitdtlid0获取隐藏的input中value的数据用“,”分割后的集合 for(var index = 0; index < ids.length; index++) {//for循环遍历有几行明细表数据 var id = $('#submitdtlid0').val().split(',')[index];//获取每一行明细表里的field36086_?,?号的值 var notsame = $('#field36086_' + id).val(); //获取每一行的费用所属期间 var startday = $('#field36072').val(); //获取开始日期也就是流程提交的日期 var endday = notsame; //费用所属期间赋值给结束日期,也就是要对比的日期 var startdays = startday.split("-");//日期用“-”分割 var newstartday = new Date(startdays[1] + '-' + startdays[2] + '-' + startdays[0]); //转换为12-18-2002格式 var enddays = endday.split("-"); var newendday = new Date(enddays[1] + '-' + enddays[2] + '-' + enddays[0]); if(newstartday < newendday) {//判断申请日期是否小于要比较的日期,如果是判断相差多少天 var chazhi = parseInt(Math.abs(newstartday - newendday) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数 if(chazhi > 90) {//每一行记录里的日期,只要大于90天,不符合的日期数量num就加1 num++; } else { } } else { } } if(num > 0) {//判断不符合的日期数量,只要有一个大于0,流程不让提交并提示 Dialog.alert("费用所属期间日期有大于90天,不可以提交流程!"); return false; } else { return true; } } }); </script>
标签:value,明细表,var,日期,submitdtlid0,二次开发,ecology8,id 来源: https://www.cnblogs.com/qingseyanyu/p/12059805.html