js 获取元素文本_js如何实现验证码功能?

90afcf6807281f918a57f3bbfa397f2f.png

#前面是拆解着讲的,不想看可以直接跳过,带注释的完整版代码和效果在后面

首先在页面中准备一个输入框,一个显示验证码的盒子和一个提交按钮

b6d7d3f8b06020b1c9dd9be114a25cdd.png

然后加亿些样式

45b74d44a2b433035321eb5097d95917.png

然后大概长这样(有点丑,不过无所谓,主要内容是js)

dfe31ba94637d5448957a6b9a5e48903.png

好,那么开始写js

首先获取这些元素

7d9f8f1f587e8419ce56659172ce5b32.png

然后搞一个字符库和一个保存验证码的字符串

19bd257dd3bb15173415aa5db1034096.png

那个字符库就直接滚键盘就行了~

因为验证码要多次用到随机数,所以为了方便就先搞一个随机数的函数

e5664aca0e5faa13558ab50c1ba19a86.png

因为是验证码,所以不能让生成的文本可以直接被选中复制,所以给加一个文本不可选中

3d8e6219967f545b580cf3a85d7042ab.png

因为验证码不是每次刷新页面就生成一次,看不清是可以换的,要多次生成,所以就把生成验证码的部分写在一个函数里

010f38010f526034709243b3bd4bd749.png

大概说明一下这部分,原理大概就是创建4(我搞的是4位的验证码)个span,然后分别随机设置文本、字体大小、字体颜色、平移旋转啥的,然后把span添加到div里成为div的子节点,然后不要忘了让str变量储存一下验证码的字符

每次生成之前先将上一次生成的验证码删掉(即把div里的所有子节点删除掉),并且把str重置

然后页面刷新的时候生成一次(调用一次),每次点击div的时候重新生成一次(每次点击调用一次)

1725f8b1d2c1b2ddf25d32547af695e9.png

再给提交按钮添加点击事件:判断验证输入的验证码对不对,然后刷新验证码,并且自动将输入框中的文本清除

5469d4ea4181917172a14b1d63c97d0c.png

判断验证码这里我为了不区分大小写用了toLowerCase()函数将两个字符串都转化成小写之后再做的比较

至此,功能就都实现的差不多了

看效果:

1cf54c7bc247e40538eb3c3bd8afb024.png

e2e85dc94fd44bff69d9229d4d82d2bf.png

24f8e33e82f64d8014bdeb4aa421dfe7.png

带注释的完整版代码如下:

26a18b1bbd6ff4a107b1382912fe31e6.png

以上

ヾ(≧∪≦*)ノ〃

————————————————

版权声明:本文为CSDN博主「60rzvvbj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

js实现验证码功能_60rzvvbj的博客-CSDN博客​blog.csdn.net
36fbb251e168af912df1599b79636575.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值