刷新jcaptcha验证码

    Grails有个jcaptcha的插件,可以很方便的生成验证码,但是并不提供刷新验证码的功能,如果想这么做,必须要自己动手写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;
}

你可能感兴趣的:(验证码)