/*
-------------------本文函數列表-------------------------
javaTrim函數 JavaTrim(str)
檢驗字符串中是否含有html字符 javaValidString(str)
檢驗字符串是否為Email格式 javaValidEmail(str)
檢查字符串中是否只含有數字和點號 javaValidNumber(str)
檢查指定form中指定item的值是否為(空/email/number) SpaceEmailNumberCheck(strFrm,strItem,nCheckType,strErrorAlertInfo)
選中/取消具有相同名字的所有復選框 CheckAll(formname,chkname,chkallname)
反選相同名稱的所有複選框 UnCheckAll(formname,chkname)
判斷是否選擇了複選框中的至少一項 CheckIsSelected(FormName,chkname)
全選頁面中的checkbox fnCheckAllCheckBox(myForm,myChecked)
提交窗體時的檢測與確認操作 DoSubmit(FormName,FormAction,chkname,Var1Name,Var1Value,Var2Name,Var2Value,Var3Name,Var3Value,DisplayStr)
設置0到5個按鈕為不可用狀態 SetDisBut(FormName,Button1Name,Button2Name,Button3Name,Button4Name,Button5Name)
禁止使用鼠標右鍵 RightKeyClick()
根據選擇的年份、月份自動改變天數下拉列表框的選擇項 YearOrMonthChange(FormName,YearName,MonthName,DayName)
比較兩個時間的大小 CompareTime(by,bm,bd,bho,bmi,ey,em,ed,eho,emi)
把選取的時間返回給時間申請對像函數 GetSelectedTime(objGetTime,TimeType)
判斷必輸項是否輸入,必選項必須選擇 GetMustInput(FormName,ObjType,ObjID,ObjName,ValueLen,HaveFocus)
獲取字符串長度(包括漢字) GetStrLen(pstr)
提交頁面,并最多給3個元素賦值 DoSearch(FormName,FormAction,Var1Name,Var1Value,Var2Name,Var2Value,Var3Name,Var3Value)
格式化數字小數點位數 FormatNumber(srcStr,nAfterDot)
設置回車鍵為Tab鍵 setHotKey()
將焦點移到objID元素上 GetFocus(objID)
-------------------本文函數列表-------------------------
*/
//============================================
//功能:去掉字符串首尾的空格,返回處理後的字符串
//============================================
function javaTrim(str){
var i=0;
var j;
var len=str.length;
trimstr='';
j=len-1;
if(j<0) return trimstr;
flagbegin= true;
flagend= true;
while (flagbegin== true){
if (str.charAt(i)==' '){
i++;
if(i>j) return trimstr;
flagbegin=true;
}
else{
flagbegin=false;
}
}
while (flagend==true) {
if (str.charAt(j)==' '){
j--;flagend=true;
}
else{
flagend=false;
}
}
trimstr=str.substring(i,j+1);
return trimstr;
}
//================================================
//檢驗str中否含有html字符,是,返回false,否,返回true
//================================================
function javaValidString(str)
{
var len;
len = str.length;
for(var i=0; i<len; i++)
{
if(str.charAt(i)=='<' || str.charAt(i)=='>' || str.charAt(i)=='/'' || str.charAt(i)=='/"')
{
return false;
}
}
return true;
}
//==================================
// 檢查E-Mail是否正確.
//注: ".@."形式也會返回true
//==================================
function javaValidEmail(str)
{
var cnt1, cnt2;
var len1;
if(javaValidString(str)==false)
{
return false;
}
cnt1=0;
cnt2=0;
len1 = str.length;
for(var i=0; i<len1; i++) {
if(str.charAt(i)=='@')
{
cnt1++;
}
if(str.charAt(i)=='.')
{
cnt2++;
}
if(str.charAt(i)==' ')
{
return false;
}
}
if( cnt1!=1 || cnt2<1)
{
return false;
}
return true;
}
//==========================
//檢查str中是否只含有數字和點號,用於身份證、電話、價格等。
//===========================
function javaValidNumber(str)
{
var cnt3;
var len3;
if(javaValidString(str)==false)
{
return false;
}
cnt3=0;
len3 = str.length;
for(var i=0; i<len3; i++) {
if(str.charAt(i)>='0' && str.charAt(i)<='9' || str.charAt(i)=='.')
{
cnt3++;
}
}
if( cnt3!=len3)
{
return false;
}
return true;
}
//===========================
//檢查指定form中指定item的值是否為(空/email/number)
//===========================
function SpaceEmailNumberCheck(strFrm,strItem,nCheckType,strErrorAlertInfo)
{
var eitem = eval(strFrm +'.'+ strItem);
switch(nCheckType)
{
case 0: //check space
if (javaTrim(eitem.value) =='')
{
alert(strErrorAlertInfo+'不能為空!');
eitem.focus();
return false ;
}
else
return true;
case 1: //check email
if(javaValidEmail(eitem.value))
return true;
else
{
alert(strErrorAlertInfo+'不能為空!');
eitem.focus();
return false ;
}
case 2: //check number
if(javaValidNumber(eitem.value))
return true;
else
{
alert(strErrorAlertInfo+'不能為空!');
eitem.focus();
return false ;
}
}
}
//=====================================
// 選中/取消具有相同名字的所有復選框;
//參數說明:
// form :表單名稱;
// chkname :欲選擇的復選框名字;
// chkallname:全選標志復選框名字;
///示例:
// OnClick="CheckAll(this.form,'cb','checkbox_all')"
//=====================================
function CheckAll(formname,chkname,chkallname)
{
var objstr=eval(formname + '.' + chkname);
if(objstr == null)
return;
var objlen=objstr.length;
var e,k;
e = eval(formname + '.'+chkname);
k = eval(formname + '.'+chkallname);
if(objlen==null)
{
objstr.checked=k.checked;
return;
}
for (var i=0;i<objlen;i++)
e[i].checked = k.checked;
}
//====================================
//反選相同名稱的所有複選框
//====================================
function UnCheckAll(formname,chkname)
{
var objstr=eval(formname + '.' + chkname);
if(objstr == null)
return;
var objlen=objstr.length;
var e;
e = eval(formname + '.'+chkname);
if(objlen==null)
{
objstr.checked=!objstr.checked;
return;
}
for (var i=0;i<objlen;i++)
e[i].checked = !e[i].checked;
}
//================================
//判斷是否選擇了複選框中的至少一項
//================================
function CheckIsSelected(FormName,chkname)
{
var e=eval(FormName + '.' + chkname);
var elen=e.length;
var selectflag=false;
if(elen==null)//隻有一條記錄的情況;
{
if(!e.checked)
{
return false;
}
else
selectflag=true;
}
else//有多條記錄的情況;
{
for(var i=0;i<elen;i++)
if(e[i].checked)
{
selectflag=true;
break;
}
if(!selectflag) //沒有選擇任何項;
{
return false;
}
}
}
//====================
//全選頁面中的checkbox
//====================
function fnCheckAllCheckBox(myForm,myChecked)
{
var frm1 = eval('document.'+ myForm);
for(var i=0;i<frm1.elements.length;i++)
{
//alert(frm1.elements[i].name);
if((frm1.elements[i].type=='checkbox') && (frm1.elements[i].name != 'chkUnSelect'))
frm1.elements[i].checked = myChecked;
}
}
//=========================================
//功能:提交窗體時的檢測與確認操作;
//參數說明:
// FormName :表單名稱;
// FormAction:Form提交的目標文件(''空串表示當前頁面;否則為指定文件);
// chkname :欲選擇的復選框名字;
// Var1Name :(Var2Name,Var3Name)Form對像1(Form對像2,Form對像3);
// Var1Value :(Var2Value,Var3Value)Form對像1的值(Form對像2的值,Form對像3的值);
// DisplayStr:確認提示信息;
//示例:
// OnClick="DoSubmit('form1','','chkTaskID','h_submit','D','','','','','真的要刪除嗎?')"
//===========================================
function DoSubmit(FormName,FormAction,chkname,Var1Name,Var1Value,Var2Name,Var2Value,Var3Name,Var3Value,DisplayStr)
{
var e=eval(FormName+'.'+chkname);
var elen=e.length;
var selectflag=false;
if(elen==null) //隻有一條記錄的情況;
{
if(!e.checked)
{
DisplayInformation('沒有選擇數據!');
return;
}
else
selectflag=true;
}
else //有多條記錄的情況;
{
for(var i=0;i<elen;i++)
if(e[i].checked)
{
selectflag=true;
break;
}
if(!selectflag) //沒有選擇刪除項;
{
DisplayInformation('沒有選擇數據!');
return;
}
}
if(selectflag)//如果選擇則根據參數情況給對像賦值並提交窗體;
{
var isconfirm=window.confirm(DisplayStr);
if(isconfirm)
{
if(FormAction!='')//窗口是否提交到當前頁面(為空串為提交到當前頁,否則為指定頁名稱);
FormName.action=FormAction;
if(Var1Name!='')
eval(FormName+'.'+Var1Name).value=Var1Value;
if(Var2Name!='')
eval(FormName+'.'+Var2Name).value=Var2Value;
if(Var3Name!='')
eval(FormName+'.'+Var3Name).value=Var3Value;
eval(FormName + '.submit()');
}
}
}
//=================================
//功能:設置0到5個按鈕為不可用狀態
//示例:
// OnLoad="SetDisBut('','b_12','','','','')"
//==================================
function SetDisBut(FormName,Button1Name,Button2Name,Button3Name,Button4Name,Button5Name)
{
var v1;
var SPFormName=FormName;
if (FormName=='')
SPFormName='form1';
if (Button1Name!='')
{
v1=eval(SPFormName + "." + Button1Name);
v1.disabled=true;
}
if (Button2Name!='')
{
v1=eval(SPFormName + "." + Button2Name);
v1.disabled=true;
}
if (Button3Name!='')
{
v1=eval(SPFormName + "." + Button3Name);
v1.disabled=true;
}
if (Button4Name!='')
{
v1=eval(SPFormName + "." + Button4Name);
v1.disabled=true;
}
if (Button5Name!='')
{
v1=eval(SPFormName + "." + Button5Name);
v1.disabled=true;
}
}
//=========================================
//功能:禁止使用鼠標右鍵
//示例:
// OnMouseDown="RightKeyClick()"
//=========================================
function RightKeyClick()
{
if (event.button==2)
{
window.alert ('對不起,禁止使用此功能!');
}
}
//==========================================
//功能:根據選擇的年份、月份自動改變天數下拉列表框的選擇項;
//參數說明:
// FormName:Form名稱;
// YearName:年份下拉列表框名稱;
// MonthName:月份下拉列表框名稱;
// DayName:天數下拉列表框名稱;
//示例:
// OnChange="YearOrMonthChange('form1','by','bm','bd')"
//============================================
function YearOrMonthChange(FormName,YearName,MonthName,DayName)
{
var CurrentMonthDays;
var bYear;
var bMonth;
var YearNameValue=eval(FormName + '.' + YearName);
var MonthNameValue=eval(FormName + '.' + MonthName);
var DayNameValue=eval(FormName + '.' + DayName);
var bDay;
bYear=parseInt(YearNameValue.options[YearNameValue.selectedIndex].value);
bMonth=parseInt(MonthNameValue.options[MonthNameValue.selectedIndex].value);
bDay=parseInt(DayNameValue.options[DayNameValue.selectedIndex].value);
//alert ('年份:' + YearNameValue.options[YearNameValue.selectedIndex].value);
//alert ('月份:' + bMonth);
switch(bMonth){
case 1:
CurrentMonthDays=31;
break;
case 3:
CurrentMonthDays=31;
break;
case 5:
CurrentMonthDays=31;
break;
case 7:
CurrentMonthDays=31;
break;
case 8:
CurrentMonthDays=31;
break;
case 10:
CurrentMonthDays=31;
break;
case 12:
CurrentMonthDays=31;
break;
case 4:
CurrentMonthDays=30;
break;
case 6:
CurrentMonthDays=30;
break;
case 9:
CurrentMonthDays=30;
break;
case 11:
CurrentMonthDays=30;
break;
case 2:
if (bYear%4==0 && bYear%100!=0 || bYear%400==0)
CurrentMonthDays=29
else
CurrentMonthDays=28;
break;
default:
CurrentMonthDays=100;
break;
}
//alert('日數:' + CurrentMonthDays);
DayNameValue.length=0;
for(var i=1;i<=CurrentMonthDays;i++)
{
DayNameValue.options[i-1]=new Option(i);
DayNameValue.options[i-1].value=i;
DayNameValue.options[i-1].text='' + i;
if(i==bDay)
DayNameValue.options[i-1].selected=true;
}
}
//=============比較兩個時間的大小===================================================================
//功能
// 比較兩個時間(以年、月、日、時、分)的大小;
//參數說明
// by:第一時間中年;
// bm:第一時間中月;
// bd:第一時間中日;
// bho:第一時間中時;
// bmi:第一時間中分;
//
// ey:第二時間中年;
// em:第二時間中月;
// ed:第二時間中日;
// eho:第二時間中時;
// emi:第二時間中分;
//
//返回值
// Time1>=Time2 返回FALSE;
// Time1<Time2 返回TRUE;
//==================================================================================================
function CompareTime(by,bm,bd,bho,bmi,ey,em,ed,eho,emi)
{
var Time1,Time2;
tbm=(''+bm).length==1?'0'+bm:''+bm;
tbd=(''+bd).length==1?'0'+bd:''+bd;
tbho=(''+bho).length==1?'0'+bho:''+bho;
tbmi=(''+bmi).length==1?'0'+bmi:''+bmi;
Time1=by+tbm+tbd+tbho+tbmi;
tem=(''+em).length==1?'0'+em:''+em;
ted=(''+ed).length==1?'0'+ed:''+ed;
teho=(''+eho).length==1?'0'+eho:''+eho;
temi=(''+emi).length==1?'0'+emi:''+emi;
Time2=ey+tem+ted+teho+temi;
return Time1>=Time2?false:true;
}
//==============把選取的時間返回給時間申請對像函數=======================================================
//功能:
// 在彈出的時間選取窗體中選取時間後,賦值給在SelectTime函數參數中傳遞的需要值的時間對像;
//參數說明:
// objGetTime:取得時間的對像名稱;
// TimeType :時間類型(DATE表示隻要日期,TIME表示隻要時間,DATETIME表示既有日期又有時間);
//返回值:
// 無;
//示例:
// OnClick="SelectTime('BeginTime','DateTime')"
//備注:
// string.toUpperCase() 將字符串轉換成大寫;
// string.toLowerCase() 將字符串轉換成小寫;
//======================================================================================================
function GetSelectedTime(objGetTime,TimeType)
{
var SelectedTime,PartDate,PartTime;
objGetTime=eval('window.opener.form1.' + objGetTime);
PartDate=frm.by.value + '-' + frm.bm.value + '-' + frm.bd.value;
PartTime=frm.bho.value + ':' + frm.bmi.value + ':00';
switch(TimeType.toUpperCase())
{
case "DATE":
SelectedTime=PartDate;
break;
case "TIME":
SelectedTime=PartTime;
break;
case "DATETIME":
SelectedTime=PartDate + ' ' + PartTime;
break;
default: //同DATETIME,所以case "DATETIME"分支可以不要;
SelectedTime=PartDate + ' ' + PartTime;
}
objGetTime.value=SelectedTime;
self.close();
}
//==============判斷必輸項是否輸入,必選項必須選擇===========================================
//功能:
// 在編輯狀態下,通常要判斷某對像的值是否輸入(並判斷是否超出指定長度)、
// 是否為數字(並判斷是否超出指定長度、還可包括其它哪些字符);
//參數說明:
// FormName [string]:窗口名稱;
// objID [string]:欲檢測對像的name;
// ObjName [string]:欲檢測對像的中文名稱;
// ObjType [string]:對像是文本類或下拉選擇類,如果是文本類可為"",如果是下拉選擇類為"Select"
// ValueLen [ int ]:對像數據最大長度;如果是0則表示不判斷其長度;
// HaveFocus [boolean]:是否讓當前對像獲得焦點;
//返回值:
// Boolean :TRUE/FALSE;
//示例:
// OnClick="GetMustInput('Form1','Select','Title','文件標題',50)"
//======================================================================================================
function GetMustInput(FormName,ObjType,ObjID,ObjName,ValueLen,HaveFocus)
{
var ObjCheck;
ObjCheck=eval(FormName + '.' + ObjID);
if (ObjType == 'Select')
if (ObjCheck.options[ObjCheck.selectedIndex].value=='')
{
window.alert('錯誤提示/n================================================/n/n[對像名稱]: ' + ObjName + '/n/n[錯誤描述]: 必須選擇數據!');
if(HaveFocus){ObjCheck.focus();}
return false;
}
if (javaTrim(ObjCheck.value) == '')
{
window.alert('錯誤提示/n================================================/n/n[對像名稱]: ' + ObjName + '/n/n[錯誤描述]: 必須輸入數據!');
if(HaveFocus){ObjCheck.focus();ObjCheck.select();}
return false;
}
else
{
if (ValueLen!=0)
if (GetStrLen(ObjCheck.value) > ValueLen)
{
window.alert('錯誤提示/n================================================/n/n[對像名稱]: ' + ObjName + '/n/n[錯誤描述]: 數據輸入超過指定長度(' + ValueLen + '),現有數據長度為(' + GetStrLen(ObjCheck.value) + ')!');
if(HaveFocus){ObjCheck.focus();ObjCheck.select();}
return false;
}
}
return true;
}
//==============獲取字符串長度(包括漢字)==============================================================
//功能:
// 取得給定字符串的長度(其包括漢字,一個漢字算兩個字符長度);
//參數說明:
// pstr:給定字符串;
//返回值:
// String;
//示例:
// window.alert(GetStrLen('江澤民會見日本客人。'))"
//======================================================================================================
function GetStrLen(pstr)
{
var AscCode;
var tmpstr=javaTrim(pstr);
var StrLen=tmpstr.length;
var nums=0;
if (StrLen<=0) return 0;
for (var i=0;i<StrLen;i++){
AscCode=tmpstr.charCodeAt(i);
if (AscCode>127) nums+=2;
else nums+=1;
}
return nums;
}
//提交頁面,并最多給3個元素賦值
function DoSearch(FormName,FormAction,Var1Name,Var1Value,Var2Name,Var2Value,Var3Name,Var3Value)
{
if(FormAction!='')//窗口是否提交到當前頁面(為空串為提交到當前頁,否則為指定頁名稱);
FormName.action=FormAction;
if(Var1Name!='')
eval(FormName+'.'+Var1Name).value=Var1Value;
if(Var2Name!='')
eval(FormName+'.'+Var2Name).value=Var2Value;
if(Var3Name!='')
eval(FormName+'.'+Var3Name).value=Var3Value;
eval(FormName + '.submit()');
}
//格式化數字小數點位數,如:FormatNumber(498.8573945,2) 格式化為2位小數
function FormatNumber(srcStr,nAfterDot){
var srcStr,nAfterDot;
var resultStr,nTen;
srcStr = ""+srcStr+"";
strLen = srcStr.length;
dotPos = srcStr.indexOf(".",0);
if (dotPos == -1){
resultStr = srcStr+".";
for (i=0;i<nAfterDot;i++){
resultStr = resultStr+"0";
}
return resultStr;
}
else{
if ((strLen - dotPos - 1) >= nAfterDot){
nAfter = dotPos + nAfterDot + 1;
nTen =1;
for(j=0;j<nAfterDot;j++){
nTen = nTen*10;
}
resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
return resultStr;
}
else{
resultStr = srcStr;
for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
resultStr = resultStr+"0";
}
return resultStr;
}
}
}
//================
//設置回車鍵為Tab鍵
//================
function setHotKey()
{
var IEKey = window.event.keyCode;
//回車表示進入下一對像(保存按鈕除外)
if(IEKey == 13)
window.event.keyCode=9;
}
//====================
//將焦點移到objID元素上
//====================
function GetFocus(objID)
{
var ObjName;
ObjName = eval("document.all."+objID);
ObjName.focus();
}