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

需求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控制表体。

蓝凌表单的表体调用Javascript的更多相关文章

  1. <form> 标签 // HTML 表单 // from 表单转换成json 格式

    <form> 标签   // HTML 表单    // from 表单转换成json 格式 form 表单,对开发人员来说是在熟悉不过的了,它是页面与web服务器交互时的重要信息来源 表 ...

  2. 统一修改表单参数(表单提交的空字符串统一转null)

    统一修改表单参数(表单提交的空字符串统一转null) 1.介绍: 我们业务中有时会遇到提交的表单中某个参数为空字符串,导致后台接受的为空字符串("")而不是我们理想中的null,会 ...

  3. JQuery ajax提交表单及表单验证

    JQuery ajax提交表单及表单验证 博客分类: jsp/html/javascript/ajax/development Kit 开源项目   注:经过验证,formValidator只适合一个 ...

  4. Bootstrap 表单和图片 (内联表单,表单合组,水平排列,复选框和单选框,下拉列表,校验状态,添加额外的图标,控制尺寸,图片)

    一.表单 基本格式 注:只有正确设置了输入框的 type 类型,才能被赋予正确的样式. 支持的输入框控件 包括:text.password.datetime.datetime-local.date.m ...

  5. JavaScript 客户端JavaScript之Document对象中的表单和表单元素

    Form对象 代表一个HTML表单(document可以有多个表单元素) 表单访问 document.form[document.forms.length-1] 访问表单元素 document.for ...

  6. bootstrap 基础表单 内联表单 横向表单

    bootstrap 基础表单 内联表单 横向表单 <!DOCTYPE html> <html> <head> <title></title> ...

  7. 第九课 表单及表单控件 html5学习4

    表单有由表单域.提示文本.表单3部分构成 一.表单控件 input 控件 1.<input />单标签2.input属性: 可以通过type属性变换形状 value默认值 name名称 c ...

  8. 8款最新CSS3表单 环形表单很酷

    当我们在网站上注册登录还是提交评论,都需要用到表单,今天我们来分享8款最新CSS3表单,有几个效果很酷很特别,有些也非常实用,一起来看看. 1.CSS3环形特色表单 转圈切换表单焦点 这款CSS3表单 ...

  9. MVC动态生成的表单:表单元素比较多 你就这样写

    MVC动态生成的表单:表单元素比较多 你就这样写: public ActionResult ShoudaanActionResult(FormCollection from,T_UserM user) ...

  10. IT兄弟连 HTML5教程 HTML5表单 H5表单提交综合实例

    这里我们创建一个填写个人基本信息的表单,使用了表单元素有<input>输入框.<datalist>选项列表.<textarea>文本框,通用的表单输入类型有text ...

随机推荐

  1. paip.判断字符是否中文与以及判读是否是汉字uapi python java php

    paip.判断字符是否中文与以及判读是否是汉字uapi python java php   ##判断中文的原理 注意: 中文与汉字CJKV 的区别..日本,韩国,新加坡,古越南等国家也用汉字,但不是中 ...

  2. Android 学习之异常总结--java.lang.IllegalStateException:Could not execute method of the activity

    在android学习过程中通常会遇到java.lang.IllegalStateException:Could not execute method of the activity这个错误:非法状态的 ...

  3. Leetcoede 112 Path Sum 二叉树

    二叉树的从叶子到根的和是否存在 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * ...

  4. 随堂笔记之正则与HTML5新元素

    在进入主题前,先插个网站https://www.processon.com/ ProcessOn是一个在线协作绘图平台,为用户提供最强大.易用的作图工具! 它可以很方便的在线简单绘制一些东西,让自己去 ...

  5. Inno Setup使用技巧

    一.关于Inno Setup如何在安装时播放音乐 方法(1): 在脚本编译里的[Code]与[Files]段处添加以下代码: [Code] Function mciSendString(lpszCom ...

  6. android: 使用通知

    8.1   使用通知 通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望向 用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现.发 ...

  7. WPA-PSK无线网络破解原理及过程(转)

    本文将主要讲讲WPA-PSK类型的无线网络安全问题,首先我们看下802.11协议相关的基础知识. 802.11常见的几种认证方式: 1.不启用安全‍‍ ‍‍2.WEP‍‍ ‍‍3.WPA/WPA2-P ...

  8. 【转】編譯Ogre1.9 IOS Dependencies及Ogre Source步驟及相關注意事項…

    http://makedreamvsogre.blogspot.tw/2014/01/ios-dependenciesogre-source.html 可能有人會想問我為什麼要自行編譯IOS Depe ...

  9. Windows共享内存示例

    共享内存主要是通过映射机制实现的. Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的.所谓的重叠是指同一块内存区域可能被多个进程同时使用.当调用 CreateFileMapp ...

  10. 针对不同的Cookie做页面缓存

    有时我们需要为PC浏览器及移动浏览器生成不同的页面,为了提高性能,不能每次请求都去判断User-Agent,通常用一个 Cookie 标记一下客户端是否是移动客户端,这样只需要读取这个 Cookie ...