JavaScript實(shí)現(xiàn)隨機(jī)碼的生成與校驗(yàn)
JavaScript之隨機(jī)碼的生成與校驗(yàn),供大家參考,具體內(nèi)容如下
由于獲取事件源有兩種寫法,所以在此處都附上:
這個(gè)是直接用var去定義的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>隨機(jī)驗(yàn)證碼校驗(yàn)</title>
<style type="text/css">
#code{
width: 100px;
height: 100px;
background-color: #ddd;
padding: 10px;
line-height: 100px;
text-align: center;
font-size: 20px;
color: red;
/*font-weight: bold;*/
}
</style>
</head>
<body>
<div id="code"></div>
<input type="text" name="" id="newCode">
<input type="button" name="" id="validate" value="驗(yàn)證">
<script type="text/javascript">
window.onload = function (){
var code;
// 1.獲取對應(yīng)的標(biāo)簽
var codeDiv = document.getElementById("code");
var newCodeInput = document.getElementById("newCode");
var validate = document.getElementById("validate");
// 加載頁面獲取對應(yīng)驗(yàn)證碼
creatCode()
// 1.獲取min到max之間的整數(shù) 1~100
function random(max,min){
return Math.floor(Math.random()*(max-min)+min);
}
function creatCode(){
code = "";
// 設(shè)置長度
var codeLenth = 4;
var randomCode =[0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
for(var i=0;i<codeLenth;i++){
// 設(shè)置隨機(jī)范圍36范圍
var index = random(0,36);
code += randomCode[index];
}
codeDiv.innerHTML = code;
}
// 驗(yàn)證按鈕校驗(yàn)
validate.onclick = function (){
// 獲取輸入用戶的驗(yàn)證碼
var newCode = newCodeInput.value.toUpperCase();
if (newCode === code){
// 驗(yàn)證成功 跳轉(zhuǎn)對應(yīng)的網(wǎng)址
window.location.;
}else {
// 驗(yàn)證失敗
alert("驗(yàn)證失敗,請重新輸入")
// 輸入框置空
newCodeInput.value = "";
// 重新獲取驗(yàn)證碼
creatCode();
}
}
}
</script>
</body>
</html>
這個(gè)是用function定義變量的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>隨機(jī)驗(yàn)證碼校驗(yàn)</title>
<style type="text/css">
#code{
width: 100px;
height: 100px;
background-color: #ddd;
padding: 10px;
line-height: 100px;
text-align: center;
font-size: 20px;
color: red;
/*font-weight: bold;*/
}
</style>
</head>
<body>
<div id="code"></div>
<input type="text" name="" id="newCode">
<input type="button" name="" id="validate" value="驗(yàn)證">
<script type="text/javascript">
window.onload = function (){
var code;
// 1.獲取對應(yīng)的標(biāo)簽(獲取事件源)
function $(id){
return typeof id === "string"?document.getElementById(id):null;
}
// 加載頁面獲取對應(yīng)驗(yàn)證碼
creatCode()
// 1.獲取min到max之間的整數(shù) 1~100
function random(max,min){
return Math.floor(Math.random()*(max-min)+min);
}
function creatCode(){
code = "";
// 設(shè)置長度
var codeLenth = 4;
var randomCode =[0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
for(var i=0;i<codeLenth;i++){
// 設(shè)置隨機(jī)范圍36范圍
var index = random(0,36);
code += randomCode[index];
}
$("code").innerHTML = code;
}
// 驗(yàn)證按鈕校驗(yàn)
$("validate").onclick = function (){
// 獲取輸入用戶的驗(yàn)證碼
var newCode = $("newCode").value.toUpperCase();
if (newCode === code){
// 驗(yàn)證成功 跳轉(zhuǎn)對應(yīng)的網(wǎng)址
window.location.;
}else {
// 驗(yàn)證失敗
alert("驗(yàn)證失敗,請重新輸入")
// 輸入框置空
$("newCode").value = "";
// 重新獲取驗(yàn)證碼
creatCode();
}
}
}
</script>
</body>
</html>
兩種方式所實(shí)現(xiàn)效果一樣。附上效果圖:

當(dāng)輸入錯(cuò)誤的數(shù)據(jù)進(jìn)行驗(yàn)證時(shí),會提示:

當(dāng)輸入正確的數(shù)據(jù)進(jìn)行驗(yàn)證時(shí),點(diǎn)擊驗(yàn)證,如果驗(yàn)證成功,會跳轉(zhuǎn)指定路徑。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用Javascript裁剪圖片并存儲的簡單實(shí)現(xiàn)
裁剪圖片對我們來說是再熟悉不過的了,最近工作中就又遇到了這個(gè)需求,所以想著干脆整理下來,方法大家和自己在需要的時(shí)候參考學(xué)習(xí),所以這篇文章主要介紹了利用Javascript裁剪圖片并存儲的簡單實(shí)現(xiàn),后端PHP處理我用的是THINKPHP框架,需要的朋友可以參考下。2017-03-03
JavaScript設(shè)計(jì)模式之裝飾者模式介紹
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之裝飾者模式介紹,通一個(gè)類來動態(tài)的對另一個(gè)類的功能對象進(jìn)行前或后的修飾,給它輔加一些額外的功能; 這是對一個(gè)類對象功能的裝飾,裝飾的類跟被裝飾的類,要求擁有相同的訪問接口方法(功能),需要的朋友可以參考下2014-12-12
DOM節(jié)點(diǎn)刪除函數(shù)removeChild()用法實(shí)例
這篇文章主要介紹了DOM節(jié)點(diǎn)刪除函數(shù)removeChild()用法,實(shí)例分析了removeChild()函數(shù)實(shí)現(xiàn)結(jié)點(diǎn)刪除的技巧,需要的朋友可以參考下2015-01-01
JS解析json數(shù)據(jù)并將json字符串轉(zhuǎn)化為數(shù)組的實(shí)現(xiàn)方法
json數(shù)據(jù)在ajax實(shí)現(xiàn)異步交互時(shí)起到了很重要的作用,他可以返回請求的數(shù)據(jù),然后利用客戶端的js進(jìn)行解析,這一點(diǎn)體現(xiàn)出js的強(qiáng)大,本文介紹JS解析json數(shù)據(jù)并將json字符串轉(zhuǎn)化為數(shù)組的實(shí)現(xiàn)方法,需要了解的朋友可以參考下2012-12-12
js實(shí)現(xiàn)帶農(nóng)歷和八字等信息的日歷特效
本文主要介紹了js實(shí)現(xiàn)帶農(nóng)歷和八字等信息的日歷特效,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-05-05
echarts報(bào)錯(cuò)Cannot?read?properties?of?null?(reading?‘getA
最近在開發(fā)Echarts忽然遇到了個(gè)問題,這篇文章主要給大家介紹了關(guān)于echarts報(bào)錯(cuò)Cannot?read?properties?of?null?(reading?‘getAttribute‘)的解決方法,需要的朋友可以參考下2023-01-01
JS實(shí)現(xiàn)把鼠標(biāo)放到鏈接上出現(xiàn)滾動文字的方法
這篇文章主要介紹了JS實(shí)現(xiàn)把鼠標(biāo)放到鏈接上出現(xiàn)滾動文字的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動態(tài)操作頁面元素的相關(guān)技巧,需要的朋友可以參考下2016-04-04

