申请免费试用、咨询电话:400-8352-114
2 引言
2.1 编写目的
方便项目、客户、开发人员进行html脚本编写。
2.2 定义
3OA协同办公 HTML模版
3.1 使用
Html模版里面脚本涉及到的field id应该跟客户现场的field id一致. 开发环境、测试环境的field id可能和客户现场的不一致,需要修改成客户现场的field id。
流程节点html模版配置表workflow_nodehtmllayout
Workflowid 流程id
nodeid 节点id
syspath 流程html模版保存路径.可以直接通过修改这个文件来对html模版进行修改,和在编辑器里面对模版修改的效果一样。
3.2 明细处理
<script language="javascript">
jQuery(document).ready(function(){
//明细1处理
//明细1对应#nodesnum0明细2对应#nodesnum1,如此类推
jQuery("#nodesnum0").bind("propertychange",function(){
bindfee(1);
});
bindfee(2);
})
//处理明细1
function bindfee(value){
var indexnum0 = 0;
if(document.getElementById("indexnum0")){
indexnum0 = document.getElementById("indexnum0").value * 1.0 - 1;
}
if(indexnum0>=0){
if(value==1){ //当前添加的行
//点明细1的“添加”按钮时,对新增明细字段的处理
//初始化发生日期 发生日期id=6147
jQuery("#field6147_"+indexnum0).bind("propertychange",function(){
dosomething…getFnaInfoData(indexnum0);
});
}else if(value==2){//初始化
//已经存在的明细,显示之前对明细字段的处理
for(var i=0;i<=indexnum0;i++){
//初始化发生日期 发生日期id=6147
jQuery("#field6147_"+i).attr("indexno",i);
jQuery("#field6147_"+i).bind("propertychange",function(){
dosomething…getFnaInfoData(this.indexno);
});
}
}
}
}
</script>
3.3 Html表单提交校验
重写checkCustomize()方法 返回false表单不会提交,返回true表单会提交。
<script type="text/javascript">
jQuery(document).ready(function(){
checkCustomize = function (){
return false;
}
});
</script>
或者
<script language="JavaScript">
window.attachEvent("onload", testreload);
function testreload(){
checkCustomize = function (){
return false;
}
}
</script>
3.4 从数据库同步查询数据
//+---------------------------------------------------
//|根据人力资源id,得到人员名称,带超链接
//+---------------------------------------------------
function gethrmname(hrmid){
var returnname = "";
jQuery.ajax({
url : "/hrm/resource/HrmGetNameAjax.jsp",
type : "post",
async : false,
processData : false,
data : "hrmid="+hrmid,
dataType : "html",
success: function do4Success(msg){
returnname = "<a href='javaScript:openhrm("+hrmid+");' onclick='pointerXY(event);'>"
+msg.trim()+"</a>";
}
});
return returnname;
}
页面HrmGetNameAjax.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" %>
<%@ page import="OA.general.*,OA.conn.*,java.util.*" %>
<jsp:useBean id="rs" class="OA.conn.RecordSet" scope="page" />
<%
int hrmid = Util.getIntValue(request.getParameter("hrmid"),0);
String sql = "select lastname from HrmResource where id="+hrmid;
rs.executeSql(sql);
String hrmName = "";
if(rs.next()){
hrmName = rs.getString("lastname") ;
}
%>
<%=hrmName%>
4 常用方法
4.1 JS常用方法
alert(变量) 弹出提示框
confirm(变量) 弹出确认框
prompt(变量) 弹出输入提示框
trim() 去掉字符串开头和末尾的空格
parseInt() 强制转换成整型
parseFloat() 制转换成浮点型
isNaN(变量) 测试是否为数值型
length 取得长度,返回整型数值
string.toLowerCase() 使字符串全部变为小写
string.toUpperCase() 使全部字符变为大写
string.substr(start[,length]) 取从第几位到指定长度的字符串
string.split(分隔符) 返回一个数组存储值
string.replace(regExpression,replaceString) 替换现有字符串
string.lastIndexOf(searchString[,startIndex]) 最后一次出现的位置
window.location.reload()刷新当前页面
window.history.back()返回上一页
window.history.forward()返回下一页
4.2 JQuery常用方法
Attribute:
jQuery (”p”).addClass(css中定义的样式类型); 给某个元素添加样式
jQuery (”元素名称”).removeClass(”class”); 给某元素删除指定的样式
jQuery(”img”).attr(”src”,”test.jpg”); 给某个元素添加属性/值
jQuery(”img”).attr({src:”test.jpg”,alt:”test Image”}); 给某个元素添加属性/值,参数是map
jQuery(”img”).attr(”title”, function() { return this.src }); 给某个元素添加属性/值
jQuery(”元素名称”).html(); 获得该元素内的内容(元素,文本等)
jQuery(”元素名称”).html(”<b>new stuff</b>”); 给某元素设置内容
jQuery(”元素名称”).removeAttr(”属性名称”) 给某元素删除指定的属性以及该属性的值
jQuery(”元素名称”).text(); 获得该元素的文本
jQuery(”元素名称”).text(value); 设置该元素的文本值为value
jQuery(”元素名称”).toggleClass(class) 当元素存在参数中的样式的时候取消,如果不存在就设置此样式
jQuery(”input元素名称”).val(); 获取input元素的值
jQuery(”input元素名称”).val(value); 设置input元素的值为value
Manipulation:
jQuery(”元素名称”).after(content); 在匹配元素后面添加内容
jQuery(”元素名称”).append(content); 将content作为元素的内容插入到该元素的后面
jQuery(”元素名称”).appendTo(content); 在content后接元素
jQuery(”元素名称”).before(content); 与after方法相反
jQuery(”元素名称”).clone(布尔表达式) 当布尔表达式为真时,克隆元素(无参时,当作true处理)
jQuery(”元素名称”).empty() 将该元素的内容设置为空
jQuery(”元素名称”).insertAfter(content); 将该元素插入到content之后
jQuery(”元素名称”).insertBefore(content); 将该元素插入到content之前
jQuery(”元素”).prepend(content); 将content作为该元素的一部分,放到该元素的最前面
jQuery(”元素”).prependTo(content); 将该元素作为content的一部分,放content的最前面
jQuery(”元素”).remove(); 删除所有的指定元素
jQuery(”元素”).remove(”exp”); 删除所有含有exp的元素
jQuery(”元素”).wrap(”html”); 用html来包围该元素
jQuery(”元素”).wrap(element); 用element来包围该元素
4.3 日期时间
//+---------------------------------------------------
//| 求两个日期的天数差 日期格式为 YYYY-MM-dd
//+---------------------------------------------------
function daysBetween(DateOne,DateTwo)
{
var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);
var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));
var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));
var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);
return Math.abs(cha);
}
4.4 金额转换
//+---------------------------------------------------
//| 将金额数字格式转换成大写汉字
//+---------------------------------------------------
function convertAmount(num) {
var strOutput = "";
var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
num += "00";
var intPos = num.indexOf('.');
if (intPos >= 0)
num = num.substring(0, intPos) + num.substr(intPos + 1, 2);
strUnit = strUnit.substr(strUnit.length - num.length);
for (var i=0; i < num.length; i++)
strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i,1),1) + strUnit.substr(i,1);
return strOutput.replace(/零角零分$/, '整').replace(/零[仟佰拾]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿|万])/g, '$1').replace(/零+元/, '元').replace(/亿零{0,3}万/, '亿').replace(/^元/, "零元");
}
4.5 其它处理
//+---------------------------------------------------
//| 替换字符 达到与java的replaceAll()一样的效果
//+---------------------------------------------------
String.prototype.replaceAll = function(s1,s2) {
return this.replace(new RegExp(s1,"gm"),s2);
}