JSP小白问题11:JS里调JSP变量被自动转换的问题。

来源:百度知道 编辑:UC知道 时间:2024/05/14 16:04:26
代码段:
<%
String sRand="";
Random randomnum = new Random();
for (int i=0;i<4;i++ )
{
String rand=String.valueOf(randomnum.nextInt(10));
sRand=""+sRand+rand;
}
%>

<script language="javascript">
function checkfrm(p)
{
alert (<%=sRand%>);
}
</script>

为什么用上面这段代码生成的字符串,一遇到0开头alert出来就不一样了?就变得莫名其妙了?比如“0111”变成“111”;“0204”变成“15”。但是错误的字符串在本也其他的JSP代码片段调用时有还是正常的......
问题在哪里是知道了,但是原理还是不明白,sRand本来就是个字符串啊?谁能给我说下...../.

当然
按照你上面的 alert(0111); 本来就会是这样

alert('<%=sRand%>'); 要当作字符串输出

JS里的var变量声明是比较模糊的 如果你想声明一个数字组合,建议试一下用空串+输入的数字串 这样JS才会知道你想要的是字符串 而不是数字

试试看 alert(""+<%=sRand%>); "": 中间无空格

alert('<%=sRand%>');