Grails有个jcaptcha的插件,可以很方便的生成验证码,但是并不提供刷新验证码的功能,如果想这么做,必须要自己动手写js来实现。
首先在页面里定义一个验证码图片对象
上面这个标签实际生成的html是类似这样的
只要变换最后的id,就可以生成新的验证码,下面我们来定义js函数reloadCaptcha
这里使用了jquery来简化操作,如果不用js库的话,可以写成下面这样
首先在页面里定义一个验证码图片对象
<jcaptcha:jpeg name="imageCaptcha" onclick="reloadCaptcha();" />
上面这个标签实际生成的html是类似这样的
<img id="imageCaptcha" src="/module/jcaptcha/jpeg/imageCaptcha?id=1357744009" onclick="reloadCaptcha();" />
只要变换最后的id,就可以生成新的验证码,下面我们来定义js函数reloadCaptcha
function reloadCaptcha() {
var captchaURL = $('#imageCaptcha').attr('src');
captchaURL = captchaURL.replace(captchaURL.substring(captchaURL.indexOf("=")+1, captchaURL.length), Math.floor(Math.random()*9999999999));
$('#imageCaptcha').attr('src', captchaURL);
}
这里使用了jquery来简化操作,如果不用js库的话,可以写成下面这样
function reloadCaptcha() {
var obj = document.getElementById('imageCaptcha');
var captchaURL = obj.src;
captchaURL = captchaURL.replace(captchaURL.substring(captchaURL.indexOf("=")+1, captchaURL.length), Math.floor(Math.random()*9999999999));
obj.src = captchaURL;
}