项目场景:
JSP页面,A标签,调用的JS方法有四个传参,传递的都是数字。
问题描述
<A style="FONT-WEIGHT: bold; COLOR: blue"
href="javascript:printBill(0060204243,3440102,00024359247,311790492)">账单打印</A>
function printBill(appNoS,orgNoS,mrSectNoS,consNoS) {
alert("appNo:"+appNoS+"orgNo:"+orgNoS+"mrSectNo:"+mrSectNoS+",consNo:"+consNoS);
var args = new Object();
args.fxbz = "WFX";
args.orgNo = orgNoS;
args.consNo = consNoS;
args.rcvblYm = document.forms[0].curYm.value;
var url =encodeURI(encodeURI( "<%=request.getContextPath()%>/XX/XXX/XXXXXXXX.do?action=search&fxbz=WFX&orgNo=" + orgNoS
+ "&consNo=" + consNoS + "&rcvblYm=" + document.forms[0].curYm.value + "&U=" + (new Date()).getTime()));
window.showModalDialog(url, args, "dialogHeight: 600px; dialogWidth:1000px;");
}
结果第一行打印的日志
appno 0060204243 变成了 12650659
原因分析:
0开头的数字是表示八进制
解决方案:
参数转换为字符串
<A style="FONT-WEIGHT: bold; COLOR: blue" href="javascript:printBill('0060204243','3440102','00024359247','311790492')">账单打印</A>