关于javascript中的变量未定义问题
我写了一个脚本要在客户端判断验证码的输入
大体代码如下:
<%@ page import= "java.util.* " %>
<% String srad = " "; %> ---srad是我定义的全局变量,用来存放随机码的-----
下面是我的脚本:
<script for= "frmReg " event= "onsubmit " language= "JavaScript " type= "text/JavaScript ">
var strAlert = " ";
if(rad.value == " ")
strAlert += "验证码没有填写!\n ";
if(rad.value != srad) ----就是这里说未定义-----
strAlert += "验证码错误!\n ";
if(strAlert != " ")
{
window.alert(strAlert);
return false;
}
else
return true;
</script>
我的form:
<form action= "login.jsp " method= "post " name= "frmReg ">
<input type= "text " name= "rad " maxlength=5 style= "width:75 ">
<%
Random random=new Random();
for(int i=0;i <=3;i++)
{
srad = srad+String.valueOf(random.nextInt(9)); ----我得到的随机码---
}
out.println(srad);
%> <br>
<input type= "submit " name= "nbtn " value= "login ">
</form>
现在的问题是我点了btn它说,脚本里面的srad没有定义,
被他给卡住了,请各位高人赐教~~~~~~~~~~~
------解决方案-------------------- <%! String srad = " "; %>
在JSP里这样定义才是全局变量吧?
------解决方案--------------------晕死,java变量怎么能拿到javascript里直接使用呢?
解决方法:
<%
Random random=new Random();
for(int i=0;i <=3;i++)
{
srad = srad+String.valueOf(random.nextInt(9)); ----我得到的随机码---
}
%>
移到
<% String srad = " "; %> ---srad是我定义的全局变量,用来存放随机码的-----
之下,
把
if(rad.value != srad) ----就是这里说未定义-----
改成
if(rad.value != <%=srad%=> ) ----就是这里说未定义-----
------解决方案--------------------把你的 javascript改成
<script for= "frmReg " event= "onsubmit " language= "JavaScript " type= "text/JavaScript ">
var strAlert = " ";
if(rad.value == " ")
strAlert += "验证码没有填写!\n ";
if(rad.value != <%= srad%> ) ----改动过的地方-----
// 如果不行就加单引号 ' <%= srad%> '
strAlert += "验证码错误!\n ";
if(strAlert != " ")
{
window.alert(strAlert);
return false;
}
else
return true;
</script>
我用过的,可以在javascript使用java代码
------解决方案--------------------楼上说得对,在javascript中可以嵌套java代码,不过反过来就不行
------解决方案--------------------在客户端直接验证不太好吧!感觉好像有点儿失去了验证码的意义了!