日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

js實現驗證碼功能

瀏覽:158日期:2024-04-28 18:46:38

本文實例為大家分享了js實現驗證碼功能的具體代碼,供大家參考,具體內容如下

#前面是拆解著講的,不想看可以直接跳過,帶注釋的完整版代碼和效果在后面

首先在頁面中準備一個輸入框,一個顯示驗證碼的盒子和一個提交按鈕

<body> <input type='text'> <div></div> <button>提交</button></body>

然后加一些樣式

input { width: 150px; height: 30px; outline: none; font-size: 24px; vertical-align: middle;}button { outline: none; vertical-align: middle; cursor: pointer;}div { display: inline-block; width: 90px; height: 40px; line-height: 40px; text-align: center; vertical-align: middle; background-color: #ddd; cursor: pointer;}

然后大概長這樣(有點丑,不過無所謂,主要內容是js)

js實現驗證碼功能

好,那么開始寫js

首先獲取這些元素

var input = document.querySelector(’input’);var btn = document.querySelector(’button’);var div = document.querySelector(’div’);

然后搞一個字符庫和一個保存驗證碼的字符串

var characters = 'QWETYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890';var str;

那個字符庫就直接滾鍵盤就行了~

因為驗證碼要多次用到隨機數,所以為了方便就先搞一個隨機數的函數

function getRandom(l, r) { return parseInt(l + Math.random() * (r - l + 1));}

因為是驗證碼,所以不能讓生成的文本可以直接被選中復制,所以給加一個文本不可選中

div.addEventListener(’selectstart’, function (e) { e.preventDefault();})

因為驗證碼不是每次刷新頁面就生成一次,看不清是可以換的,要多次生成,所以就把生成驗證碼的部分寫在一個函數里

function run() { str = ’’; while (div.hasChildNodes()) { div.removeChild(div.firstChild); } for (var i = 0; i < 4; i++) { var span = document.createElement(’span’); span.innerHTML = characters[getRandom(0, characters.length - 1)]; span.style.display = ’inline-block’; span.style.fontSize = getRandom(16, 32) + ’px’; span.style.color = ’rgb(’ + getRandom(0, 200) + ’,’ + getRandom(0, 200) + ’,’ + getRandom(0, 200) + ’)’; span.style.transform = ’translate(’ + getRandom(-5, 5) + ’px, ’ + getRandom(-5, 5) + ’px) rotate(’ + getRandom(-20, 20) + ’deg)’; str += span.innerHTML; div.appendChild(span); }}

大概說明一下這部分,原理大概就是創建4(我搞的是4位的驗證碼)個span,然后分別隨機設置文本、字體大小、字體顏色、平移旋轉啥的,然后把span添加到div里成為div的子節點,然后不要忘了讓str變量儲存一下驗證碼的字符

每次生成之前先將上一次生成的驗證碼刪掉(即把div里的所有子節點刪除掉),并且把str重置

然后頁面刷新的時候生成一次(調用一次),每次點擊div的時候重新生成一次(每次點擊調用一次)

run();div.addEventListener(’click’, run);

再給提交按鈕添加點擊事件:判斷驗證輸入的驗證碼對不對,然后刷新驗證碼,并且自動將輸入框中的文本清除

btn.addEventListener(’click’, function () { if (input.value.toLowerCase() == str.toLowerCase()) { alert(’驗證成功’); } else { alert(’驗證失敗’); } run(); input.value = ’’;})

判斷驗證碼這里我為了不區分大小寫用了toLowerCase()函數將兩個字符串都轉化成小寫之后再做的比較

至此,功能就都實現的差不多了

看效果:

js實現驗證碼功能

帶注釋的完整版代碼如下:

<!DOCTYPE html><html lang='ch-ZN'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>js實現驗證碼</title> <style> input { width: 150px; height: 30px; outline: none; font-size: 24px; vertical-align: middle; } button { outline: none; vertical-align: middle; cursor: pointer; } div { display: inline-block; width: 90px; height: 40px; line-height: 40px; text-align: center; vertical-align: middle; background-color: #ddd; cursor: pointer; } </style></head><body> <input type='text'> <div></div> <button>提交</button> <script> // 獲取元素 var input = document.querySelector(’input’); var btn = document.querySelector(’button’); var div = document.querySelector(’div’); // 搞一個字符庫 var characters = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'; var str; // str用來儲存驗證碼的文本 // 生成一個在[l,r]范圍內的隨機整數的函數 function getRandom(l, r) { return parseInt(l + Math.random() * (r - l + 1)); } // 設置文本不可選中 div.addEventListener(’selectstart’, function (e) { e.preventDefault(); }) // 生成驗證碼的函數 function run() { // 先重置str str = ’’; // 刪除掉div中的所有子節點 while (div.hasChildNodes()) { div.removeChild(div.firstChild); } // 生成由四個字符組成的驗證碼 for (var i = 0; i < 4; i++) { // 創建一個span對象 var span = document.createElement(’span’); // 設置文本(從字庫中隨機抽取一個字符) span.innerHTML = characters[getRandom(0, characters.length - 1)]; // 設置一些隨機的樣式 span.style.display = ’inline-block’; span.style.fontSize = getRandom(16, 32) + ’px’; span.style.color = ’rgb(’ + getRandom(0, 200) + ’,’ + getRandom(0, 200) + ’,’ + getRandom(0, 200) + ’)’; span.style.transform = ’translate(’ + getRandom(-5, 5) + ’px, ’ + getRandom(-5, 5) + ’px) rotate(’ + getRandom(-20, 20) + ’deg)’; str += span.innerHTML; // str記錄字符 div.appendChild(span); // 將span添加到div中 } } run(); // 每次打開/刷新頁面時先調用一次 div.addEventListener(’click’, run); // 每次點擊驗證碼的時候調用一次 // 提交按鈕點擊事件 btn.addEventListener(’click’, function () { if (input.value.toLowerCase() == str.toLowerCase()) { alert(’驗證成功’); } else { alert(’驗證失敗’); } run(); input.value = ’’; }) </script></body></html>

以上

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲激情精品| 四虎884aa成人精品最新| 欧洲一级精品| 精品成人免费一区二区在线播放| 精品久久久久中文字幕小说| 福利一区和二区| 国产精品毛片久久| 日韩深夜视频| 麻豆网站免费在线观看| 日本欧美不卡| 亚洲欧洲另类| 日本精品久久| 欧美精品观看| 欧美资源在线| 亚洲一区国产一区| 亚洲伊人精品酒店| 色综合视频一区二区三区日韩 | 日本亚洲欧美天堂免费| 亚洲丝袜啪啪| 欧美国产精品| 美女精品久久| 亚洲天堂1区| 男女精品网站| 国产精品一区免费在线| 日韩理论片av| 国产模特精品视频久久久久| 日本成人手机在线| 精品九九在线| 一区在线观看| 久久av日韩| 亚洲网站视频| 日韩成人午夜精品| 粉嫩av一区二区三区四区五区| 日韩精品免费一区二区在线观看 | 国产精品对白久久久久粗| 精品国产中文字幕第一页| 欧美肉体xxxx裸体137大胆| 一区二区高清| 日韩av有码| 亚洲视频国产精品| 精品久久久久中文字幕小说| 国户精品久久久久久久久久久不卡| 视频在线观看一区| 精品无人区麻豆乱码久久久| 国产国产精品| 蜜桃久久久久| 久久亚洲图片| 日韩精品专区| 亚洲一区二区三区久久久| 老司机免费视频一区二区三区| 亚洲精品成人| 精品国产乱码久久久久久樱花| 蜜桃国内精品久久久久软件9| 欧美精品观看| 九九在线精品| 精品99在线| 中文字幕一区二区三区日韩精品 | 亚洲一区二区三区在线免费| 国产精品久久| 六月丁香综合| se01亚洲视频 | 99精品美女| 国产乱人伦精品一区| 国产精品97| 福利精品在线| 国产精品久久久久77777丨| 樱桃成人精品视频在线播放| 国产激情精品一区二区三区| 人人精品人人爱| 999国产精品视频| 精品三级av| 日韩精品三区四区| 最新日韩av| 久久狠狠婷婷| 国产精品久久久久久久久久10秀| 日欧美一区二区| 亚洲欧美日韩国产一区二区| 精品丝袜在线| 福利欧美精品在线| 国产精品s色| 欧美日韩中出| 日本在线成人| 亚洲一区成人| 欧美日韩国产高清电影| 日韩欧美1区| 国产精品99久久精品| 国产精品久一| 日韩国产一区二| 在线观看亚洲精品福利片| 欧美高清不卡| 婷婷综合网站| 在线国产一区| 一本一道久久a久久精品蜜桃| 中文一区一区三区高中清不卡免费| 国产精品久av福利在线观看| 青青在线精品| 日本成人中文字幕| 久久亚洲欧美| 麻豆9191精品国产| 免费在线观看不卡| 蜜臀国产一区二区三区在线播放| 亚洲精品小说| 亚洲综合不卡| 老鸭窝毛片一区二区三区| 一区二区自拍| 午夜亚洲福利在线老司机| 亚洲欧美视频| 亚洲精品黄色| 欧美在线精品一区| 国产精品丝袜在线播放| 免费亚洲一区| 91一区二区三区四区| 欧美激情99| 精品网站aaa| 麻豆视频在线看| 91精品国产乱码久久久久久久| 欧美/亚洲一区| 免费日韩视频| 日本亚洲三级在线| 国产精品成人国产| 国语精品一区| 欧美亚洲国产精品久久| 在线一区欧美| 日本成人手机在线| 欧美xxxx性| 精品免费av在线| 六月婷婷一区| 日本一区二区中文字幕| 国产精品啊v在线| av资源新版天堂在线| 精品一区三区| 日本aⅴ亚洲精品中文乱码 | 好吊视频一区二区三区四区| 亚洲一区二区免费在线观看| 国产精品最新| 久久久精品午夜少妇| 午夜亚洲一区| 国产精品亚洲综合久久| jizzjizz中国精品麻豆| 欧美在线观看视频一区| 国产亚洲毛片| 国产欧美一区二区三区国产幕精品| 久久99国产精品视频| 欧美久久精品一级c片| 日韩高清二区| 美女福利一区二区三区| 在线看片日韩| 精品国产成人| 亚洲综合不卡| 国产日韩一区二区三区在线 | 精品资源在线| 亚洲免费播放| 久久99久久人婷婷精品综合| 四虎4545www国产精品| 亚洲欧洲一区二区天堂久久| 国产日韩欧美三区| 三级小说欧洲区亚洲区| 日本亚洲不卡| 日韩一区二区中文| 亚洲精品裸体| 日韩一区三区| 国产情侣久久| 免费久久99精品国产自在现线| 国产精品啊v在线| 99日韩精品| 高清一区二区三区av| 一区二区三区四区精品视频| 国产不卡人人| 国产日韩欧美高清免费| 国产在线|日韩| 国产伦理久久久久久妇女| 午夜久久美女| 日韩伦理在线一区| 欧美日本久久| 首页国产欧美久久| 久久人人97超碰国产公开结果| 欧美日韩一区二区三区不卡视频| 欧美精品一区二区久久| 精品视频91| 国产日产精品_国产精品毛片| 一本一道久久a久久精品蜜桃| 国产a久久精品一区二区三区| 日韩国产一二三区| 美女网站久久| 国产精品毛片久久| 国产精区一区二区| 涩涩涩久久久成人精品| 午夜欧美精品久久久久久久| 亚洲精品永久免费视频| 国产激情一区| 综合国产精品| 夜夜嗨网站十八久久| 亚洲第一区色| 黄色aa久久| 久久精品资源| 久久69成人| 欧美黑人做爰爽爽爽| 国产欧美亚洲精品a| 欧美精品中文字幕亚洲专区| 99成人在线|