1、引用jquery

2、Html页面

 <div>
<canvas id="canvas" style="cursor: pointer; height: 35px; width: 100px; top: 10px; position: relative;"></canvas>
<input type="hidden" id="yzmji" />
<input type="button" id="a" />
</div>

3、JS页面

<script>
document.getElementById("a").onclick = function () {
var b = $("#yzmji").val();
alert(b); } var _picTxt = "";
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
function randomColor(min, max) {
var _r = randomNum(min, max);
var _g = randomNum(min, max);
var _b = randomNum(min, max);
return "rgb(" + _r + "," + _g + "," + _b + ")";
}
document.getElementById("canvas").onclick = function (e) {
e.preventDefault();
drawPic();
$("#yzmji").val(_picTxt.substr(_picTxt.length - , _picTxt.length - ));
};
function drawPic() {
var $canvas = document.getElementById("canvas");
var _str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var _num = ;
var _width = $canvas.width;
var _height = $canvas.height;
var ctx = $canvas.getContext("2d");
ctx.textBaseline = "bottom";
ctx.fillStyle = randomColor(, );
ctx.fillRect(, , _width, _height);
for (var i = ; i < _num; i++) {
var x = (_width - ) / _num * i + ;
var y = randomNum(_height * / , _height);
var deg = randomNum(-, );
var txt = _str[randomNum(, _str.length)];
_picTxt += txt;
ctx.fillStyle = randomColor(, );
ctx.font = randomNum(, ) + "px SimHei";
ctx.translate(x, y);
ctx.rotate(deg * Math.PI / );
ctx.fillText(txt, , );
ctx.rotate(-deg * Math.PI / );
ctx.translate(-x, -y);
}
for (var i = ; i < _num; i++) {
ctx.strokeStyle = randomColor(, );
ctx.beginPath();
ctx.moveTo(randomNum(, _width), randomNum(, _height));
ctx.lineTo(randomNum(, _width), randomNum(, _height));
ctx.stroke();
}
for (var i = ; i < _num * ; i++) {
ctx.fillStyle = randomColor(, );
ctx.beginPath();
ctx.arc(randomNum(, _width), randomNum(, _height), , , * Math.PI);
ctx.fill();
}
return _picTxt;
}
drawPic();
$("#yzmji").val(_picTxt.substr(_picTxt.length - , _picTxt.length)); </script>

完!

JS验证码的更多相关文章

  1. js 验证码 倒计时60秒

    js 验证码 倒计时60秒 <input type="button" id="btn" value="免费获取验证码" /> & ...

  2. js验证码有效时间倒计时

    js验证码有效时间倒计时 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type& ...

  3. 纯js验证码

    纯js验证码 <!DOCTYPE html> <html> <head> <title>纯js验证码</title> </head&g ...

  4. easyui page添加文本,js验证码

    onLoadSuccess: function (db) { //db是后台数据的返回结果集 $.ajax({ url: "AjaxSource/Buex.ashx", data: ...

  5. JS验证码邮件

    js var time = 30; var canSend = true; function f5() { if (canSend) {//判断是否要ajax发送刷新验证码 验证码在后台刷新 //al ...

  6. js 验证码倒计时

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. angular.js 验证码注册登录

    css部分 header{ height: 50px; line-height: 50px; display: flex; } .callback{ text-align: left; display ...

  8. 一些网站后台模板源码分析 Particleground.js 验证码

    转: https://blog.csdn.net/bcbobo21cn/article/details/51271750 1 灰色简洁企业后台管理模板 效果: 看下项目结构: 它使用了moderniz ...

  9. JS 验证码的实现

    转自:https://github.com/ace0109/verifyCode 正要做一个验证码,网上找到这个还不错: gVerify.js: !(function(window, document ...

随机推荐

  1. C++ Windows 下 根据进程名获取进程ID 以及该进程下所有窗口的句柄

    #include <windows.h> #include <stdint.h> #include <tlhelp32.h> #include <stdio. ...

  2. [原创]快速指定SQLDeveloper所使用JDK的方法

    就众多的免费SQL开发工具来讲,Oracle出品的SQLDeveloper 还是一个很不错的选择. 看到网上不少的帖子讨论SQL Developer 启动的时候报告找不到Java Home(或JDK) ...

  3. Java 静态变量,常量和方法

    static 关键字 例如:在球类中使用PI这个常量,可能除了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量.这时没有必要 在两个类中同时创建PI这个常量,因为这样系统会将这两个不在同一个类 ...

  4. MyBatis基于注解的动态SQL——概览

  5. kdiff3的主窗口说明 Base Local Remote 分别代表什么分支

  6. 解决Office互操作错误"检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005"

    Excel为例(其他如Word也适用)文件数据导入时报出以下错误: 检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是 ...

  7. SQL 一条SQL语句 统计 各班总人数,男女各总人数 ,各自 男女 比例 (转)

    select  sClass 班级,count(*)  班级学生总人数, sum(case when sGender=0 then 1 else 0 end) 女生人数, sum(case when ...

  8. Hosts文件

    Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开, 其作用:就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时, ...

  9. kali 更改root密码

    sudo root passwd root 然后输入两次密码即可

  10. SpringMVC 温故而知新

    http://www.cnblogs.com/bigdataZJ/p/5815467.html直接引用别人的吧,没时间呀