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. sql执行

    一.提高sql执行效率---in与exist . where column in (select * from table where ...) . ...where exists (select ' ...

  2. JMeter学习-034-JMeter调试工具之一---HTTP Mirror Server

    通常,编程工具IDE都提供了相应的调试模块,供开发者使用,以便更快速的定位问题所在.那么在JMeter编写测试脚本的过程中,JMeter都提供了哪些调试工具供我们使用呢? JMeter常用的调试工具有 ...

  3. iOS 面试题(五):weak 的内部实现原理 --转自唐巧

    问题 weak 变量在引用计数为0时,会被自动设置成 nil,这个特性是如何实现的? 答案 在 Friday QA 上,有一期专门介绍 weak 的实现原理.https://mikeash.com/p ...

  4. MySQL的几个概念:主键,外键,索引,唯一索引

    概念: 主键(primary key) 能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录的唯一和 ...

  5. JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别

    JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ...

  6. express 的 app.get和app.use

    1.若调用app.get()时只有一个参数,则认为是取设置值,否则认为是注册路由 2.所有被 app.use() 接收的 handle 会被放到一个 stack 里边 app.get() 执行的时候会 ...

  7. SVN迁项目

    next -> 做为新项目检出,finish -> next -> finish -> 否,是

  8. Leetcode: Design Snake Game

    Design a Snake game that is played on a device with screen size = width x height. Play the game onli ...

  9. Ubuntu14.04安装OpenCV2.4.9

    1.安装依赖 sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev lib ...

  10. (四)SQL入门 数据库的操作与事务管理

    数据库的操作,有三个最基本的语句,insert插入,update修改,delete删除. 不同的数据库厂商的实现可能不同,所以就不说具体的语法怎么写的了.说语法也没有意义,到处都可以复制粘贴,记得听某 ...