📄 common.js
字号:
var contextPath = "/hetong";
//import Check.js
$import('Check.js', 'js');
$import('list.js', 'js');
$import('keyhandler.js', 'js');
//js的import add by yehailong
function $import(path, type){
var i,
base,
src = "COMMON.js",
scripts = document.getElementsByTagName("script");
for (i = 0; i < scripts.length; i++) {
if (scripts[i].src.match(src)) {
base = scripts[i].src.replace(src, "");
break;
}
}
if (type == "css") {
document.write("<" + "link href=\"" + base + path + "\" rel=\"stylesheet\" type=\"text/css\"></" + "link>");
} else {
document.write("<" + "script src=\"" + base + path + "\"></" + "script>");
}
}
//使用prototype动态创建对象方法
function addSetMethod(obj,prop){
var temp = (prop.substring(0,1).toUpperCase())+prop.substring(1);
eval(obj+".prototype.set"+temp+" = function("+prop+"){if(!isNull("+prop+")){this."+prop+" = "+prop+"}}");
}
function isNull(str){
return str==null||str=="null";
}
function back(){
//if(window.history.length!=0){
if(document.referrer!=""){
window.history.back();
return;
}else{
window.close();
return;
}
}
function Tree(){
this.treeType = null;//树类型 sysorg 。。。
this.rootId = null;//树根
this.checkedId = null;//选中的节点ID,“,”分隔
this.selectType = null;//checkbox or radio
this.selectAll = null;//是否自动选择所有子节点
this.width = null;//对话框的宽度
this.height = null;//对话框的高度
this.params = null;//附加参数值,用于TreeService的构造函数(数组)
this.sql = null;//根据特定sql语句直接构造树
this.treeName = null;//树显示名
this.showParent = null;//是否显示父节点名
}
var _tree = new Tree();
for(var obj in _tree)
{
addSetMethod("Tree",obj);
}
//树形选择器
function selectTree(tree){
if(tree.treeType==null&&tree.sql==null){
alert("使用错误,未设置treeType或者sql属性!");
return false;
}
if(tree.height==null)
tree.height = 380;
if(tree.width==null)
tree.width = 400;
var Y=(window.screen.height-tree.height)/2;
var X=(window.screen.width-tree.width)/2;
var dm="dialogHeight:"+tree.height+"px;dialogWidth:"+tree.width+"px;dialogLeft:"+X+"px;dialogTop:"+Y+"px;center:yes;resizable:no;status:no;";
var url = contextPath+"/common/selectTree.jsp?time="+((new Date()).getTime());
if(tree.treeType!=null)
url += "&treeType="+tree.treeType;
if(tree.selectType!=null)
url += "&selectType="+tree.selectType;
if(tree.selectAll!=null)
url += "&selectAll="+tree.selectAll;
if(tree.rootId!=null)
url += "&rootId="+tree.rootId;
if(tree.checkedId!=null)
url += "&checkedId="+tree.checkedId;
if(tree.params!=null){
for(var i=0;i<tree.params.length;i++){
url += "¶m="+tree.params[i];
}
}
if(tree.treeName!=null){
url += "&treeName="+tree.treeName;
}
if(tree.sql!=null)
url += "&sql="+tree.sql;
if(tree.showParent!=null)
url += "&showParent="+tree.showParent;
//alert(url);
var retv=window.showModalDialog(url,"",dm);
return retv;
}
/**
* 解析树选择器的返回值
* @param tree 构造树对象
* @return Array
* Array[0]:逗号分隔的ID字符串
* Array[1]:逗号分隔的名字字符串
*/
function getValues(tree){
var retv = selectTree(tree);
if(retv==null||retv=="undefined"){
return null;
}
if(retv==""){
//return new Array("","");
return null;
}else{
//取ID
var ids = "";
//取NAME
var names = "";
var arr = retv.split(";");
for(var i=0;i<arr.length;i++){
var temp = arr[i];
if(i!=0){
ids += ",";
names += ",";
}
ids += temp.substring(0,temp.indexOf(","));
names += temp.substring(temp.indexOf(",")+1);
}
return new Array(ids,names);
}
}
/**
* 日期格式及合法性验证
* @author yehailong
* @param obj 需要验证的对象
* @param fmt 日期格式字符串, 由yyyymmdd(不区分大小写)组合而成,分隔符可以为'-'、'.'、'/'之一
* @param name 对象显示名,便于提示 ,如果不传,不alert提示
* @return boolean 通过返回true,否则false
*/
function checkDate(obj,fmt,name){
if(obj==null||obj=="undefined"||obj.disabled||obj.value==""){
return true;
}
if(name==null){
name="";
}else{
name="“"+name+"”";
}
var regex = new Array("-",".","/");
var regex0 = "";
for (var i=0;i<regex.length ;i++ ){
if(fmt.indexOf(regex[i])!=-1){
regex0 = regex[i];
break;
}
}
var y = 0;
var m = 0;
var d = 0;
var yearIndex = 0;
var monthIndex = 0;
var dayIndex = 0;
var number = new Array(0,0,0);
var ch = '';
var index = 0;
for (var i=0;i<fmt.length ;i++ )
{
if(ch==''||fmt.charAt(i)==ch){
number[index] = number[index]+1;
}else if(fmt.charAt(i)!=regex0){
index++;
number[index] = number[index]+1;
}
ch = fmt.charAt(i);
if(fmt.charAt(i)=='Y'||fmt.charAt(i)=='y'){
if(y==0){
yearIndex = i;
}
y++;
}
if(fmt.charAt(i)=='M'||fmt.charAt(i)=='m'){
if(m==0){
monthIndex = i;
}
m++;
}
if(fmt.charAt(i)=='D'||fmt.charAt(i)=='d'){
if(d==0){
dayIndex = i;
}
d++;
}
}
var sreg = "";
for(i in number){
if(number[i]!=0){
if(sreg!=""){
sreg += regex0;
}
sreg += "\\d{"+number[i]+"}";
}
}
sreg = "^"+sreg+"$";
var reg = new RegExp(sreg ,"i");
if(!reg.test(obj.value)){
if(name!=""){
alert(name+"格式应匹配'"+fmt+"'");
}
setFocus(obj);
return false;
}
//判断日期的合法性
var dateStr = obj.value;
var year = "";
var month = "";
var day = "";
year = dateStr.substring(yearIndex,yearIndex+y);
month = dateStr.substring(monthIndex,monthIndex+m);
day = dateStr.substring(dayIndex,dayIndex+d);
if(month.charAt(0)=='0'){
month = month.charAt(1);
}
if(day=="")
day = 1;
var date = new Date(year,(month-1)<0?0:(month-1),day);
var newYear = date.getFullYear();
var newMonth = date.getMonth()+1;
if(newMonth<10) newMonth = "0"+newMonth;
var newDay = date.getDate();
if(newDay<10) newDay = "0"+newDay;
var newDate = dateStr;
function temp(src,start,end,tgt){
var pre = "";
if(start!=0){
pre = src.substring(0,start);
}
var back = "";
if((end+1)!=src.length){
back = src.substring(end+1,src.length);
}
return pre+tgt+back;
}
if(y!=0){
newDate = temp(newDate,yearIndex,yearIndex+y-1,newYear);
}
if(m!=0){
newDate = temp(newDate,monthIndex,monthIndex+m-1,newMonth);
}
if(d!=0){
newDate = temp(newDate,dayIndex,dayIndex+d-1,newDay);
}
if(dateStr!=newDate){
/*
if(confirm(name+"'"+dateStr+"'自动转换为'"+newDate+"'")){
obj.value = newDate;
}
*/
return false;
}
return true;
}
//对象焦点定位
function setFocus(obj){
try{
obj.focus();
var rng = obj.createTextRange(); rng.collapse(false); rng.select();
}catch(e){}
}
var objArray = new Array();
function formatAllInput(doc){
//document.oncontextmenu = function(){
//return false;
//}
var allInput;
if(doc==null){
allInput = document.all.tags("INPUT");
}else{
allInput = doc.all.tags("INPUT");
}
for(var i=0;i<allInput.length;i++){
if((allInput[i].type!="text"&&allInput[i].type!="password")
||allInput[i].readOnly
||allInput[i].disabled)
continue;
var obj = allInput[i];
var onblurF = obj.onblur;
if(onblurF!=null&&onblurF!=""){
if((onblurF+"").indexOf("this")==-1){
//如果input自身定义的onblur函数含有this对象参数传递,无法合并函数
objArray[""+obj.uniqueID] = onblurF;
obj.onblur = formatInput;
}
}else{
obj.onblur = formatInput;
}
}
//textarea的处理
var allArea;
if(doc==null){
allArea = document.all.tags("TEXTAREA");
}else{
allArea = doc.all.tags("TEXTAREA");
}
for(var i=0;i<allArea.length;i++){
var area = allArea[i];
if(area.maxLength!=null||area.maxlength!=null){
area.onpropertychange = limitLength;
}
}
}
function limitLength(){
var ele = event.srcElement;
var maxL = ele.maxLength;
if(maxL==null){
maxL = ele.maxlength;
}
//var realLength = ele.value.replace(/[^\x00-\xff]/g,"**").length;
var realLength = ele.value.length;
if (realLength > maxL) {
alert("所输入的内容超过最大长度!最大长度为["+maxL+"]个字符");
ele.value = ele.value.substring(0,maxL);
event.returnValue = false;
}
}
//格式化
function formatInput(){
//var ele = event.srcElement;
var ele = null;
try{
ele = parent.mainFrame.event.srcElement;
}catch(e){
ele = event.srcElement;
}
if(ele.format!="false"){
//var value = ele.value.toUpperCase();
var value = ele.value;
//全角转半角
var qj = new Array('0','1','2','3','4','5','6','7','8','9','(',')','-','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
var bj = new Array('0','1','2','3','4','5','6','7','8','9','(',')','-','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
var newValue = "";
var change = false;
for(var i=0;i<value.length;i++){
var ch = value.charAt(i);
var isQj = false;
for(var j=0;j<qj.length;j++){
if(qj[j]==ch){
newValue += bj[j];
isQj = true;
change = true;
break;
}
}
if(!isQj){
newValue += ch;
}
}
if(ele.value!=newValue){
ele.value = newValue;
}
}
//属性是否定义
function isDefined(prop){
if(prop==null||prop=="undefined"||prop==""){
return false;
}
return true;
}
var showName = "";
if(isDefined(ele.showName)){
showName = ele.showName;
}else{
var parentEle = ele.parentElement;
if(parentEle.tagName=="TD"){
if(parentEle.previousSibling!=null)
showName = parentEle.previousSibling.innerText;
}
}
/*
if(isDefined(ele.required)){
if(!checkEle(ele,"required",showName)){
return false;
}
}
if(isDefined(ele.check)){
if(ele.value!=""){
if(!checkEle(ele,ele.check,showName)){
return false;
}
}
}
*/
if(objArray[""+ele.uniqueID]!=null){
objArray[""+ele.uniqueID]();
}
}
//清除字符串两端的空字符
function trim(str){
if(str == null) return "";
var begin = 0;
var end = str.length-1;
while(begin<=end){
if(str.charAt(begin) == ' '){
begin ++;
}else{
break;
}
}
while(begin<=end){
if(str.charAt(end) == ' '){
end--;
}else{
break;
}
}
return str.substring(begin,end+1);
}
//新窗口打开
function openWindow(url,width,height){
var x,y;
x = (screen.availWidth - width)/2;
y = (screen.availHeight - height)/2 - 40;
if(x<0) x=0;
if(y<0) y=0;
if(url.indexOf(contextPath+"/")!=0){
url = contextPath+"/"+url;
}
if(url.indexOf("?")<0){
url += "?";
}else{
url += "&";
}
url += "time="+(new Date().getTime());
window.open (url, "", "scrollbars=yes,status=yes,resizable=yes,top=" + y + ",left=" + x + ",height=" + height + ",width=" + width);
}
//打开对话框
function openDialog(url,width,height){
var x,y;
x = (screen.availWidth - width)/2;
y = (screen.availHeight - height)/2 - 40;
if(x<0) x=0;
if(y<0) y=0;
if(url.indexOf(contextPath+"/")!=0){
url = contextPath+"/"+url;
}
if(url.indexOf("?")<0){
url += "?";
}else{
url += "&";
}
url += "time="+(new Date().getTime());
var dm="dialogHeight:"+height+"px;dialogWidth:"+width+"px;dialogLeft:"+x+"px;dialogTop:"+y+"px;center:yes;resizable:no;status:no;";
return window.showModalDialog(url,"",dm);
}
/**
* Purpose: 获取字段的值
* Inputs: String fieldName 字段名称
* Returns: 值
*/
function getFieldValue(fieldName){
if (document.all.item(fieldName)!=null){
//判断是否多个相同的Name的输入框,如果是,合成一个值返回
//alert(111 + strID);
if (document.all.item(fieldName).length==null){//单个值
//alert(112);
if (document.all.item(fieldName).type=="checkbox" || document.all.item(fieldName).type=="radio"){
if (document.all.item(fieldName).checked==true){
return document.all.item(fieldName).value;
}
}else{
//去掉日期的后面部分,可能有隐患,如果真是有这样的情况
if (document.all.item(fieldName).value.indexOf("00:00:00")>0){
return trim(document.all.item(fieldName).value).substring(0,11);
}else{
return trim(document.all.item(fieldName).value);
}
}
}else{//多个值
var paraValue="";
//alert(113);
for (var i=0;i<document.all.item(fieldName).length;i++){
if (document.all.item(fieldName)[i].type=="radio"){
if (document.all.item(fieldName)[i].checked==true){
return document.all.item(fieldName)[i].value;
}
}else if (document.all.item(fieldName)[i].type=="checkbox"){
if (document.all.item(fieldName)[i].checked==true){
paraValue = paraValue + document.all.item(fieldName)[i].value + ",";
}
}else{
paraValue = paraValue + document.all.item(fieldName)[i].value + ",";
}
}
//alert(114);
return paraValue.substr(0,paraValue.length-1);
}
//alert(trim(formElm.all.item(strID).value));
}else{
return "";
}
return "";
}
//设置字典的值,并同步
function setDicValue(name,value){
var obj = window.document.getElementById(name);
obj.value = value;
obj.click();
}
function setValue(field,value){
var obj = document.getElementById(field);
if(obj.tagName=="INPUT"){
if(obj.type=="text"||obj.type=="hidden"){
obj.value = value;
}
if(obj.type=="radio"){
var objs = parentDocument.getElementsByName(field);
for(var i=0;i<objs.length;i++){
if(objs[i].value==value){
objs[i].checked = true;
}
}
}
}
if(obj.tagName=="TEXTAREA"){
obj.value = value;
}
if(obj.tagName=="SELECT"){
var options = obj.options;
var len = options.length;
for(var i=0;i<len;i++){
if(options[i].value==value){
options[i].selected = true;
}
}
}
}
function dateformatCheck(str) {
if(str==null||str=='')
return true;
ymd1=str.split("-");
month1=ymd1[1]-1;
var Date1 = new Date(ymd1[0],month1,ymd1[2]);
if (Date1.getMonth()+1!=ymd1[1]||Date1.getDate()!=ymd1[2]||Date1.getFullYear()!=ymd1[0]||ymd1[0].length!=4)
{
alert("格式错误,请按YYYY-MM-DD样式");
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -