日期:2014-05-17  浏览次数:20692 次

验证码无法通过程序刷新
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" language="javascript">
  function changImage(){
  var imgTag=document.getElementsByTagName("img");
  imgTag[0].src="LogonFormServlet";
 
  }
</script>
</head>
<body>
<form action="CheckCodeServlet" method="post">
<h3>带有验证码的登陆界面</h3>
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
验证码:<input type="text" name="check_code"><img name="change" src="LogonFormServlet"/>&nbsp;&nbsp;<span style="color:red" onclick="changImage()">看不清?</span><br>
<input type="submit" name="submit" value="登陆">
</form>
</body>
</html>

上面是测试带有验证码的登陆界面,运行时没问题。在内联元素<span>处,当单击"看不清?"时,LogonFormServlet
没有被调用,所以验证码处没变化。这个该怎么解决??验证码程序LogonFormServlet没问题,刷新时能产生新的验证码。


------解决方案--------------------
探讨
imgTag[0].src="LogonFormServlet";
这一句换成:
imgTag[0].src="LogonFormServlet?num=" + Math.random();
试试。

原理是加上一个随机数,防止浏览器使用缓存图片。