///////////////////////////////////////////////////////////////// // 通用js方法库相关。 // //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// // global vars defination // modify by LiuZhiping function isIE() { if (document.all || navigator.userAgent.indexOf("MSIE") > 0 || navigator.appName.indexOf("Microsoft") > 0) return true; else return false; } function getEvent(event) { return event ? event : (window.event ? window.event : null); } function getKey(event) { return event.keyCode ? event.keyCode : event.which ; } var keyObject = function(keyCode, isCtrl, isAlt, isShift) { this.keyCode = keyCode; this.isCtrl = isCtrl ? true : false; this.isAlt = isAlt ? true : false; this.isShift = isShift ? true : false; } function keyDisable(event) { var event = getEvent(event); var fk; var key; for ( var i = 0, len = filterKeys.length; i < len; i++) { fk = filterKeys[i]; key=getKey(event); if (key == fk.keyCode && event.ctrlKey == fk.isCtrl && event.altKey == fk.isAlt && event.shiftKey == fk.isShift) { if (isIE()) { event.keyCode=0; event.returnValue = false; } else { event.preventDefault(); event.stopPropagation(); } break; } } } function multiKeyDisable(event, startKey, endKey) { var event = getEvent(event); var key=getKey(event); if (key >= startKey && key <= endKey) { if (isIE()) { event.keyCode=0; event.returnValue = false; } else { event.preventDefault(); event.stopPropagation(); } } } function DisableBackspace(event) { var event = getEvent(event); var key=getKey(event); if(8!=key){return;} var actObjType = ""; try { actObjType = document.activeElement.type.toLowerCase(); } catch (e) { } if (actObjType != null && actObjType != "text" && actObjType != "textarea" && actObjType != "password" && actObjType != "file"&& actObjType != "application/x-vnd-sa-isecurity-fjhxb") { if (isIE()) { event.keyCode=0; event.returnValue = false; } else { event.preventDefault(); event.stopPropagation(); } } } function keydownFun(event) { keyDisable(event); DisableBackspace(event); multiKeyDisable(event, 112, 133); } function EnterDisable(event) { var event = getEvent(event); var key=getKey(event); if(key==13){ if (isIE()) { event.keyCode=0; event.returnValue = false; }else{ event.preventDefault(); event.stopPropagation(); } } } function CheckEvent(){//保证兼容性 实际无意义 } function rightClickDisable(event) { return false; } var filterKeys = [ /*new keyObject(13, false, false, false),// Enter */new keyObject(37, true, false, false), // Ctrl+ ← new keyObject(39, true, false, false), // Ctrl+ → new keyObject(65, true, false, false), // Ctrl+A new keyObject(78, true, false, false), // Ctrl+N new keyObject(80, true, false, false), // Ctrl+P new keyObject(82, true, false, false), // Ctrl+R new keyObject(83, true, false, false), // Ctrl+S new keyObject(37, false, true, false), // Alt+ ← new keyObject(39, true, true, false), // Alt+→ new keyObject(121, false, false, true) // shift+F10 ]; //update by yangwl 2014-09-02 页面开启Enter 需要请在页面申明isNeedEnter变量 try{ if("undefined" == typeof(isNeedEnter)){ filterKeys.push(new keyObject(13, false, false, false)); } }catch(e){ filterKeys.push(new keyObject(13, false, false, false)); } document.onkeydown = keydownFun; document.oncontextmenu = rightClickDisable; //////////////////////////////////////////////////////////////// function mustDigit(event) { var event=getEvent(event); var key=getKey(event); if(key==46){return;} if(isIE()) { if(key<48||key>57){ event.returnValue = false; } }else if(key>=58&&key<=126){ event.preventDefault(); event.stopPropagation(); } } //去掉空格 function trim(s) { return s.replace(/^\s+/,"").replace(/\s+$/, ""); } // 将金额数字转换为标准的格式 function standMoney(inObject){ // 首先检查字符串的所有字符是否均为数字、小数点或逗号分隔符形式 var inStr = inObject.value; outStr=formatMoney(inStr); inObject.value = outStr; return; } function formatMoney(moneyValue){ // 首先检查字符串的所有字符是否均为数字、小数点或逗号分隔符形式 var inStr = moneyValue var i,charValue,outStr; for(i=0;i2) { return moneyValue } // 处理小数部分 var dotStr,dotValue; if(valueArr.length==2) { dotValue = valueArr[1]; if(dotValue.length==0) { dotStr = "00"; } else { if(dotValue.length==1) dotStr = dotValue + "0"; else dotStr = dotValue.substring(0,2); } } else { dotStr = "00"; } // 处理整数部分 var intArr; intArr = valueArr[0].split(","); // 无论整数部分是否已经用逗号分隔开,都将其合并成一个整体 var intValue; intValue = ""; for(i=0;i3) { intStr=","+intValue.substring(intValue.length-3,intValue.length) + intStr; intValue = intValue.substring(0,intValue.length-3); } intStr = intValue + intStr; //最后将处理后的整数部分与小数部分合并,作为输出 if( intStr == "" || intStr == null ) { intStr = "0" } outStr = intStr + "." + dotStr; /* if( outStr == 0.0 ) { alert("金额不得输入为零!") inObject.focus() inObject.select() return } */ return outStr; } // 恢复成数字串的格式,删掉分节符 function revertMoney(inObject,flag) { var inStr = inObject.value var outStr=""; var ch; for(i=0;i11){ alert("非法金额") return ZDX } var lnP = outStr.length for(i=lnP-1;i>=0;i--) { out = outStr.substring(lnP-i-1,lnP-i) var chout = i if (chout!="2"){ ZDX=ZDX+Str[out]+Cha[chout] } } return ZDX; } function standStringAmount(inStr) { // 首先检查字符串的所有字符是否均为数字、小数点或逗号分隔符形式 if(inStr.length == 0) return var i,charValue,outStr; for(i=0;i2) { alert(inStr+" 非法金额!") return } // 处理小数部分 var dotStr,dotValue; if(valueArr.length==2) { dotValue = valueArr[1]; if(dotValue.length==0) { dotStr = "00"; } else { if(dotValue.length==1) dotStr = dotValue + "0"; else dotStr = dotValue.substring(0,2); } } else { dotStr = "00"; } // 处理整数部分 var intArr; intArr = valueArr[0].split(","); // 无论整数部分是否已经用逗号分隔开,都将其合并成一个整体 var intValue; intValue = ""; for(i=0;i3) { intStr=","+intValue.substring(intValue.length-3,intValue.length) + intStr; intValue = intValue.substring(0,intValue.length-3); } intStr = intValue + intStr; //最后将处理后的整数部分与小数部分合并,作为输出 if( intStr == "" || intStr == null ) { intStr = "0" } outStr = intStr + "." + dotStr; return outStr; } function popUpDlg(url,event) { var event = getEvent(event); var x=event.offsetX?event.offsetX:event.layerX; var y=event.offsetY?event.offsetY:event.layerY; var showx = event.screenX - x- 4 - 100 ; // + deltaX; var showy = event.screenY - y+ 18; // + deltaY; if(url==null) return; retval = window.showModalDialog(url,window, "dialogWidth:530px; dialogHeight:498px; dialogLeft:"+showx+"px; dialogTop:"+showy+"px; status:no; directories:yes;scrollbars:no;Resizable=no;location=no; " ); return retval; } //页面校验信息显示在EEE位置 function throwValidationAtEEE(valiInfo,place) { //window.document.getElementsByName(place).innerHTML=valiInfo; PEGetElement(place).innerHTML = valiInfo; } //标准金额格式 function standStringAmount(inStr) { // 首先检查字符串的所有字符是否均为数字、小数点或逗号分隔符形式 if(inStr.length == 0) return var i,charValue,outStr; for(i=0;i2) { alert(inStr+" 非法金额!"); return ""; } // 处理小数部分 var dotStr,dotValue; if(valueArr.length==2) { dotValue = valueArr[1]; if(dotValue.length==0) { dotStr = "00"; } else { if(dotValue.length==1) dotStr = dotValue + "0"; else dotStr = dotValue.substring(0,2); } } else { dotStr = "00"; } // 处理整数部分 var intArr; intArr = valueArr[0].split(","); // 无论整数部分是否已经用逗号分隔开,都将其合并成一个整体 var intValue; intValue = ""; for(i=0;i3) { intStr=","+intValue.substring(intValue.length-3,intValue.length) + intStr; intValue = intValue.substring(0,intValue.length-3); } intStr = intValue + intStr; //最后将处理后的整数部分与小数部分合并,作为输出 if( intStr == "" || intStr == null ) { intStr = "0" } outStr = intStr + "." + dotStr; return outStr; } /** * 将小写金额转换为大写 */ function Arabia_to_Chinese(Num){ for(i=Num.length-1;i>=0;i--){ Num = Num.replace(",","")//替换tomoney()中的“,” Num = Num.replace(" ","")//替换tomoney()中的空格 } //Num = Num.replace("¥","")//替换掉可能出现的¥字符 if(isNaN(Num)) { //验证输入的字符是否为数字 alert("请检查小写金额是否正确"); return; } //---字符处理完毕,开始转换,转换采用前后两部分分别转换---// part = String(Num).split("."); newchar = ""; //小数点前进行转化 for(i=part[0].length-1;i>=0;i--){ if(part[0].length > 12){ alert("位数过大,无法计算"); return ""; }//若数量超过仟亿单位,提示 tmpnewchar = "" perchar = part[0].charAt(i); switch(perchar){ case "0": tmpnewchar="零" + tmpnewchar ;break; case "1": tmpnewchar="壹" + tmpnewchar ;break; case "2": tmpnewchar="贰" + tmpnewchar ;break; case "3": tmpnewchar="叁" + tmpnewchar ;break; case "4": tmpnewchar="肆" + tmpnewchar ;break; case "5": tmpnewchar="伍" + tmpnewchar ;break; case "6": tmpnewchar="陆" + tmpnewchar ;break; case "7": tmpnewchar="柒" + tmpnewchar ;break; case "8": tmpnewchar="捌" + tmpnewchar ;break; case "9": tmpnewchar="玖" + tmpnewchar ;break; } switch(part[0].length-i-1){ case 0: tmpnewchar = tmpnewchar +"元" ;break; case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break; case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break; case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break; case 4: tmpnewchar= tmpnewchar +"万" ;break; case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break; case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break; case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break; case 8: tmpnewchar= tmpnewchar +"亿" ;break; case 9: tmpnewchar= tmpnewchar +"拾" ;break; case 10: tmpnewchar= tmpnewchar +"佰" ;break; case 11: tmpnewchar= tmpnewchar +"仟" ;break; } newchar = tmpnewchar + newchar; } //小数点之后进行转化 // if(Num.indexOf(".")!=-1){ if(part[1].length > 2) { alert("小数点之后只能保留两位,系统将自动截段"); part[1] = part[1].substr(0,2) } for(i=0;i13){ alert("输入金额过长"); return; } if (objValue!=''){ var v1 = standStringAmount(objValue); //标准金额格式 var v2 = Arabia_to_ChineseV1(v1); //金额大写格式 } else { v1 = ''; v2 = ''; } if (standardSpanId!=null) {//是否显示标准金额 PEGetElement(standardSpanId).innerHTML=v1; } //显示大写金额 PEGetElement(chineseSpanId).innerHTML=v2; if (hiddenField!=null) {//隐藏域-大写金额 PEGetElement(hiddenField).value=v2; } } /** * 将小写金额转换为大写 */ function Arabia_to_ChineseV1(Num){ for(i=Num.length-1;i>=0;i--){ Num = Num.replace(",","")//替换tomoney()中的“,” Num = Num.replace(" ","")//替换tomoney()中的空格 } //Num = Num.replace("¥","")//替换掉可能出现的¥字符 if(isNaN(Num)) { //验证输入的字符是否为数字 alert("请检查小写金额是否正确"); return; } //---字符处理完毕,开始转换,转换采用前后两部分分别转换---// part = String(Num).split("."); newchar = ""; //小数点前进行转化 for(i=part[0].length-1;i>=0;i--){ if(part[0].length > 13){ alert("位数过大,无法计算"); return ""; }//若数量超过仟亿单位,提示 tmpnewchar = "" perchar = part[0].charAt(i); switch(perchar){ case "0": tmpnewchar="零" + tmpnewchar ;break; case "1": tmpnewchar="壹" + tmpnewchar ;break; case "2": tmpnewchar="贰" + tmpnewchar ;break; case "3": tmpnewchar="叁" + tmpnewchar ;break; case "4": tmpnewchar="肆" + tmpnewchar ;break; case "5": tmpnewchar="伍" + tmpnewchar ;break; case "6": tmpnewchar="陆" + tmpnewchar ;break; case "7": tmpnewchar="柒" + tmpnewchar ;break; case "8": tmpnewchar="捌" + tmpnewchar ;break; case "9": tmpnewchar="玖" + tmpnewchar ;break; } switch(part[0].length-i-1){ case 0: tmpnewchar = tmpnewchar +"元" ;break; case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break; case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break; case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break; case 4: tmpnewchar= tmpnewchar +"万" ;break; case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break; case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break; case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break; case 8: tmpnewchar= tmpnewchar +"亿" ;break; case 9: tmpnewchar= tmpnewchar +"拾" ;break; case 10: tmpnewchar= tmpnewchar +"佰" ;break; case 11: tmpnewchar= tmpnewchar +"仟" ;break; case 12: tmpnewchar= tmpnewchar +"万" ;break; } newchar = tmpnewchar + newchar; } //小数点之后进行转化 // if(Num.indexOf(".")!=-1){ if(part[1].length > 2) { alert("小数点之后只能保留两位,系统将自动截段"); part[1] = part[1].substr(0,2) } for(i=0;i size){ //汉字是否换行 var html2 = splitChineseStr(chineseAmount, size2) document.getElementById(id).innerHTML= amount + '
' + html2; }else{ document.getElementById(id).innerHTML = payerBalanceHtml; } }catch(e){ alert("大写金额转换失败:"+e.description); if(flag){ //汉字 var chineseAmount = "(" + Arabia_to_Chinese(amount) + ")"; document.getElementById(id).innerHTML = chineseAmount; }else{ //报错只赋值数字金额 document.getElementById(id).innerHTML = amount; } } } /** * 根据长度拆分成换行的字符 * @param chineseAmount 源字符 * @param size2 拆分的长度 */ function splitChineseStr(chineseAmount, size2){ if(chineseAmount.length <= size2){ return chineseAmount; } var html2 = ''; var length = chineseAmount.length%size2==0?(chineseAmount.length/size2) : ((chineseAmount.length/size2) + 1) ; length = parseInt(length); for(var i=0; i