zoukankan      html  css  js  c++  java
  • 蓝凌表单的表体调用Javascript

    应用场景:像请假类表单会在从表输入开始时间、结束时间等字段

    需求1:客户希望根据开始、结束时间自动计算小时数

    解决方法:

    1、主表单增加一行,设三个字段[开始时间合计]、[结束时间合计]、[开始结束时间计算结果]

    在[开始结束时间计算结果]触发脚本calTime()。

    --计算时间段函数:calTime()
    --代码如下:
    var B=0;
    var E=0;
    var RowNum=document.all.edittable_OverTimeApplyDetail_tData.rows.length;
    for(var i=0;i<RowNum;i++)
    {
     if(document.all.edittable_OverTimeApplyDetail_tData.rows(i).display=='none')
     {continue;}
    var j1="BeginTime_"+(i+1);
    var obj1=document.getElementById(j1);
    var j2="EndTime_"+(i+1);
    var obj2=document.getElementById(j2);
    var j3="Amount_"+(i+1);
    var obj3=document.getElementById(j3);
    
    
    if(obj1.value==null || obj1.value=='' || obj2.value==null || obj2.value==''){break;}
    else
    {
    //取开始时间
    if(((obj1.value).substring(3,5))=='30')
    {if(parseInt((obj1.value).substring(0,1))==0){B=parseInt((obj1.value).substring(1,2))+0.5;}
     else{B=parseInt((obj1.value).substring(0,2))+0.5;}
    }
    else
    {if(parseInt((obj1.value).substring(0,1))==0){B=parseInt((obj1.value).substring(1,2));}
     else{B=parseInt((obj1.value).substring(0,2));}
    }
    //取结束时间
    if(((obj2.value).substring(3,5))=='30')
    {if(parseInt((obj2.value).substring(0,1))==0){E=parseInt((obj2.value).substring(1,2))+0.5;}
     else{E=parseInt((obj2.value).substring(0,2))+0.5;}
    }
    else
    {if(parseInt((obj2.value).substring(0,1))==0){E=parseInt((obj2.value).substring(1,2));}
     else{E=parseInt((obj2.value).substring(0,2));}
    }
    
    
    if((E-B)>0){document.getElementById(j3).value=E-B;}
    else {alert('结束时间不能小于开始时间!');}
    
    }
    
    }

    2.假设新增的这行是第3行,隐藏该行

    var divObj=document.getElementById('divMainForm');
    if(divObj)
     {var tr=divObj.getElementsByTagName('tr');
      if(tr)
       {
        tr[2].style.display='none';
       }
     }

    其他代码:

    ----检查从表中输入的时间(取数据字典)值是合法格式
    
    var RowNum=document.all.edittable_请假明细_tData.rows.length;
    for(var i=0;i<RowNum;i++)
    {
     if(document.all.edittable_请假明细_tData.rows(i).display=='none')
     {continue;}
    var j1="开始时间_"+(i+1);
    var obj1=document.getElementById(j1);
    var j2="截止时间_"+(i+1);
    var obj2=document.getElementById(j2);
    
    if(obj1.value==null || obj1.value=='' || obj2.value==null || obj2.value==''){break;}
    else
    {
     //取开始时间
     if(obj1.value.substring(2,3)!=":"|| obj1.value.length!=5 )
     {alert("您输入的时间格式不符,请重新输入!");
     obj1.value="";
     }
     //取结束时间
     if(obj2.value.substring(2,3)!=":"|| obj2.value.length!=5 )
     {alert("您输入的时间格式不符,请重新输入!");
     obj2.value="";
     }
    
    }
    
    }

    总结:由于表单先加载表头、this_formscript()函数,最后才是表体。故无法在this_formscript控制表体。

  • 相关阅读:
    Ubuntu操作系统如何设置默认启动内核
    设置和取消环境变量
    vue create与vue init的区别
    base64 编解码
    获取url中的参数
    ubuntu账户密码正确但是登录不了怎么办
    斐波那契数列的递推式-----动态规划
    Round-Robin轮询调度法及其实现原理
    MySql中float类型的字段的查询
    使用 Python 从网页中提取主要文本内容
  • 原文地址:https://www.cnblogs.com/star-studio/p/6098709.html
Copyright © 2011-2022 走看看