使用ajax更改验证码

时间:2011-12-15 02:50:07

标签: javascript jquery ajax

我正在尝试实现以下代码:

verify.html:

<input type="text" id="vericode" style="position:relative;top:-3px;width:70px;height:20px;border:1px solid #928b8b" name="verif_box">
<IMG style="position:relative;top:5px;margin-left:5px;" SRC="image.php">
    <a href="#" id="change">change to another one</a>

<script>
    $(document).ready(function(){ 
        $("#change").click(function(e){
            e.preventDefaut();
            //not sure how to load the image.php again?
        }
   });
</script>

我想在点击“更改为另一个”时更改验证码,而不是不确定如何重新加载image.php,每次刷新verify.html时,验证码都会更改为新的,但我希望每次都不刷新页面就改变它,任何人都可以帮我解决这个问题,非常感谢你的帮助。

4 个答案:

答案 0 :(得分:0)

您可以通过修改img的src属性并添加时间戳来重新加载图像,因此链接将是唯一的,并且不会使用缓存版本。

$("#change").click(function(e){
  e.preventDefaut();
  $("img").attr('src', 'image.php?ts=' + new Date().getTime());
}

请为要加载的图片添加id属性,以便您可以使用$("#imgID")

答案 1 :(得分:0)

我会以不同方式解决问题并通过ajax调用image.php文件,将div的内容替换为该调用返回的图像。

如果您对此方法感到满意,this other stack overflow问题可以帮助您。

答案 2 :(得分:0)

html也有一些错误。

<input type="text" id="vericode" style="position:relative;top:-3px;width:70px;height:20px;border:1px solid #928b8b" name="verif_box" />
<IMG style="position:relative;top:5px;margin-left:5px;" SRC="image.php" /> 
    <a href="#" id="change">change to another one</a>

<script>
    $(document).ready(function(){ 
        $("#change").click(function(e){
            e.preventDefaut();
            $("img[style="position:relative;top:5px;margin-left:5px;"]").attr('src','new_image.php').load();
        }
   });
</script>

答案 3 :(得分:0)

试试这个:

HTML:

<img id="myImage" src="handler.php" alt="" />
<a id="change" href="#" title="change">change image</a>

Jquery的:

<script type="text/javascript">
$(document).ready(function(){ 
$("#change").click(function(e){
 e.preventDefaut();
 var hUrl = "handler.php"
 $("#myImage").attr('src', (hUrl + getRandomQueryString()));
 });//click

});//ready

//avoid cache :
function getRandomQueryString()
{
  return "&Id=" + Math.round(new Date().getTime() / 1000);
}