博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
验证码
阅读量:6846 次
发布时间:2019-06-26

本文共 2731 字,大约阅读时间需要 9 分钟。

验证码,省市区三联级

核心:

1,这里在修改了原verify.js,在第12行,增加了vfinput.setAttribute("data-canvas",validate),目的,判断输入与生成验证码的等值

2,表单的居中用了max-width: 500px;

 3,注意,在

您的浏览器不支持canvas,请换个浏览器试试~

这里设置canvas的高度的时候,我在head里重置了样式:

#mycanvas {
cursor: pointer; height: 46px; }

标签上的height=‘40’要保留,否则,height:46px就会失效。

 4,在省重新赋值的时候,需要用trigger()方法,来触发select的change事件,否则回填的时候显示的是原来的值

$("#province6").trigger("change");

 

verify.js

/*生成4位随机数*/function rand(){    var str="abcdefghijklmnopqrstuvwxyz0123456789";    var arr=str.split("");    var validate="";    var ranNum;    for(var i=0;i<4;i++){        ranNum=Math.floor(Math.random()*36);   //随机数在[0,35]之间        validate+=arr[ranNum];    }    var vfinput = document.getElementById("vfinput");    vfinput.setAttribute("data-canvas",validate)    return validate;}/*干扰线的随机x坐标值*/function lineX(){    var ranLineX=Math.floor(Math.random()*90);    return ranLineX;}/*干扰线的随机y坐标值*/function lineY(){    var ranLineY=Math.floor(Math.random()*40);    return ranLineY;}function clickChange(){    var mycanvas=document.getElementById('mycanvas');    var cxt=mycanvas.getContext('2d');    cxt.fillStyle='#000';    cxt.fillRect(0,0,90,40);        /*生成干扰线20条*/    for(var j=0;j<20;j++){        cxt.strokeStyle='#fff';        cxt.beginPath();    //若省略beginPath,则每点击一次验证码会累积干扰线的条数        cxt.moveTo(lineX(),lineY());        cxt.lineTo(lineX(),lineY());        cxt.lineWidth=0.5;        cxt.closePath();        cxt.stroke();    }    cxt.fillStyle='red';    cxt.font='bold 20px Arial';    cxt.fillText(rand(),25,25);   //把rand()生成的随机数文本填充到canvas中    }clickChange();/*点击验证码更换*/mycanvas.onclick=function(e){    e.preventDefault();   //阻止鼠标点击发生默认的行为    clickChange();};

 

html:

您的浏览器不支持canvas,请换个浏览器试试~

 

jq验证:

//绑定验证码事件        $("#vfinput").blur(function () {            var inputCode = $("#vfinput").val();            var codeValue = $("#vfinput").attr("data-canvas")            console.log(inputCode,codeValue)            if (inputCode.length <= 0) {              alert("请输入验证码!");            }            else if (inputCode.toLowerCase() != codeValue.toLowerCase()) {              alert("验证码输入错误!");              $("#vfinput").val("")            }            // else {
// alert("成功"); // } });

 

预览:

https://besswang.github.io/verify-slim/index.html

转载于:https://www.cnblogs.com/wang715100018066/p/7851453.html

你可能感兴趣的文章
RHEL6网络相关配置
查看>>
RHEL6.3配置文件共享(4) Samba服务之二
查看>>
Cookie和JS购物车的简单实例
查看>>
Exchange-清理AD上残留Exchange信息
查看>>
持续集成之 Jenkins+Gitlab 打包发布程序到 Tomcat(二)
查看>>
SQL SERVER SQLOS的任务调度
查看>>
企业必用之单点***
查看>>
【CSS】【12】CSS盒子的display属性
查看>>
linux下配置tomcat、resin
查看>>
oracle命令历史记录工具(rlwrap)
查看>>
CentOS提示 -bash: patch: command not found 解决办法
查看>>
分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日)
查看>>
老男孩linux技术沙龙交流活动视频分享(下)
查看>>
Windows事件日志写入SQL Server并PowerBI统计分析
查看>>
linux运维人员的成功面试总结案例分享
查看>>
iPad用户使用Mac和Windows应用软件-记Parallels Access使用体验
查看>>
.NET简谈组件程序设计之(初识NetRemoting)
查看>>
windows process activation service不能安装或启动的解决办法
查看>>
SCCM 2012 SP1系列(五)安装客户端
查看>>
Gartner:2012年应用安全Hype Cycle
查看>>