0

我在jsp中有一段代码:

String temp=new SimpleDateFormat("MMddyyyy").format((java.sql.Date)ppdates.get(authShown));
out.print(temp);

<select id="pcol<%=i%><%=weekNo%><%=au%>" onChange="pSelectedAuth(<%=i%>,<%=weekNo%>,<%=au%>,<%=currentEmployee%>,<%=temp%>)">

这将打印06042012在屏幕上。

现在,我的 javascript 函数如下:

function pSelectedAuth(formID,weekNo, index, currentEmployee,startDate){
alert(formID+":"+weekNo+":"+index+":"+currentEmployee+":"+startDate);

onchange,此警报显示1623050 有人知道如何让我06042012回来吗?

4

1 回答 1

1

你没有做任何事情来引用你的论点(也就是说——你没有将它们包装在'...'or中"..."),所以它们被解释为 JavaScript 表达式。在 JavaScript 源代码中,06042012被解释为 base-8 整数(因为前导0),所以它表示 1623050。

要解决此问题,请务必将 JavaScript 字符串包含在'...'or中"..."(以及正确转义任何内部引号、反斜杠、换行符、特殊字符、</等等)。这样,您将拥有'06042012'or "06042012",JavaScript 将按照您的意愿将其解释为字符串。

于 2013-01-13T07:39:07.213 回答