重点代码:onClick="this.src=this.src+'?'+Math.random();"

其实就是请求新的验证码,为了请求到新的验证码而不是原来产生的验证码,在URL中加入了Math.random()随机数,this.src是img的属性,通过改变img的属性src就可以更换验证码的图片

如下是我实践的两个方案合一的案例:

HTML代码:

<tr>
   <th>验证码:</th>
   <td>
      <input type="code" class="len250" name="code"/>
                    <img src="{:U('Index/verify','','')}" onClick="this.src=this.src+'?'+Math.random();" id="code" title="点击刷新"/>   <!--点击图片刷新-->
                    //img标签下的src就是调用Login控制器中的veryfy方法
            //后面的两个参数留空是必须的,其中第2个没实际意义,主要是为了第3个参数留空,这样设置可以取消伪静态后缀名,
           //否则默认的伪静态后缀名为html,将会导致无法正常加载图片
           <a  href="javascript:void(0);"  onclick="shuaxin()">看不清</a>                                           <!--点击‘看不清’刷新-->
   </td>
</tr>

JS代码:
<script type="text/javascript">
    var verifyURL=$("img#code").attr('src');//动态获取img-URL
    function shuaxin(){
$("img#code").attr('src',verifyURL+'/'+Math.random());
    }
</script>

解除伪静态的方案:

HTML代码:

<tr>
   <th>验证码:</th>
   <td>
      <input type="code" class="len250" name="code"/>
                    <img src="{:U('Index/verify','','')}" onClick="this.src=this.src+'?'+Math.random();" id="code" title="点击刷新"/>   <!--点击图片刷新-->
                    //img标签下的src就是调用Login控制器中的veryfy方法
            //后面的两个参数留空是必须的,其中第2个没实际意义,主要是为了第3个参数留空,这样设置可以取消伪静态后缀名,
           //否则默认的伪静态后缀名为html,将会导致无法正常加载图片
           <a  href="javascript:void(0);"  id="shuaxin">看不清</a>                                           <!--点击‘看不清’刷新-->
   </td>
</tr>
JS代码:
<script type="text/javascript">

$(function(){

    $('#shuaxin').click(function(){

        var verifyObject = $(this).siblings('img');

        verifyObject.attr('src',verifyObject.attr('src')+'?'+Math.random());

    });

});


</script>
<script type="text/javascript">