今天在刷新验证码的时候发现只能刷新一次,之后就没有反应了
修改前的前台代码:
jsp:
< img id="imgCode" src="${path }/imageCode.action" title="看不清?点击换一张" onclick="re_Code()"/>
js:
function re_Code(){
var img = document.getElementById("imgCode");
img.src = "${path }/imageCode.action";
}
原因:
因为点击触发一次src之后,再点击,原来的src与再点击的src相同,所以刷新一次验证码之后就不能刷新验证码了。
解决方法一(jsp不变,修改js):
添加随机数,让点击发送的src与上一次的src不一样
js:
function re_Code(){
var img = document.getElementById("imgCode");
img.src = "${path }/imageCode.action?mr="+ Math.random();
}
第一种方法要写js,太麻烦了,不符合高效率工作。
解决方法二(不需要js,修改jsp(推荐
)):
jsp:
< img src="${path }/imageCode.action" title="看不清?点击换一张" onclick="this.src = this.src + '?'"/>
解释:
onclick="this.src = this.src + '?'"
这是表示当前图片链接,在当前链接值的基础上加上了问号
比如 src=Code.action就变成了src=Code.action? 继续点就变成Code.action??
这个问号是没有实际意义的,它唯一的作用是向浏览器表明:图片的链接发生了变化,图片需要刷新。