永发信息网

js刷新验证码问题

答案:6  悬赏:30  手机版
解决时间 2021-02-23 15:22
  • 提问者网友:饥饿走向夜
  • 2021-02-23 09:17
用js控制验证码刷新
<script language=javascript type=text/javascript>

function fGetCode()
{

document.getElementById('checkImg').src='/verification/ImageServlet?temp=Math.random()';

}

</script>
<IMG src="/verification/ImageServlet" onclick=" fGetCode()">
为什么只能刷新一次,就是我点击验证码时,会刷新,但是再次点击时就不行了,这是为什么呢?
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-02-23 10:34
<IMG src="/verification/ImageServlet" onclick=" fGetCode()">
这个标签没有ID,改这样看看:
<IMG id="checkImg" src="/verification/ImageServlet" onclick=" fGetCode()">
全部回答
  • 1楼网友:笑迎怀羞
  • 2021-02-23 15:40
document.getElementById('checkImg').src='/verification/ImageServlet?temp='+Math.random();
  • 2楼网友:蕴藏春秋
  • 2021-02-23 14:15
因为你刷新后IMG对象已经变化了,不是原来的图片dom对象了,所以注册的onclick事件也没了, 这样就要找一个固定不变的dom对象来注册事件。 在img外面加个div,把onclick事件加到这个div上 <div onclick="fGetCode()"> <IMG id="checkImg" src="/verification/ImageServlet"> </div>
  • 3楼网友:深街酒徒
  • 2021-02-23 13:08
onclick="this.src='yzm.php?'+new Date().getTime()";
  • 4楼网友:从此江山别
  • 2021-02-23 11:33
问题出在Math.random(),这个获取的是一个浮点小数(0.XXXXXX),所以每次虽然小数不同但是系统会自动变成整数'0’。所以点再多次temp获取到的随即数都是0没有变化,所以获取不到新的验证码,其次src='/verification/ImageServlet?temp=Math.random()'你这种写法有问题,应该写成:src='/verification/ImageServlet?temp=’+Math.random(),建议通过日期函数给temp赋随机值。
  • 5楼网友:酒安江南
  • 2021-02-23 11:26
你的随机数生成写在引号里边了,会把它当成字符串的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯