jQuery加法驗證碼效果程式碼例項

antzone發表於2017-04-06

本章節分享一段程式碼例項,它實現了簡單的前端驗證碼效果。

此驗證碼採用加法計算的方式,程式碼例如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
.code{
  font-family:Arial;
  font-style:italic;
  color:Red;
  border:0;
  padding:2px 3px;
  letter-spacing:3px;
  font-weight:bolder;
  cursor:pointer;
}
.unchanged{
  border:0;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script language="javascript" type="text/javascript">
var code; //在全域性 定義驗證碼
var code2; //在全域性 定義驗證碼
function createCode(){
  code="";
  var checkCode=document.getElementById("checkCode");
  function RndNum(n){
    var rnd="";
    for(var i=0;i<n;i++){
      rnd +=Math.floor(Math.random()*10);
    }   
    return rnd;
  }
  
  var num = RndNum(2);
  var num2 = RndNum(2);
  
  code = num + "+" + num2 + "=";
  code2 = parseInt(num) + parseInt(num2)
  
  if(checkCode){
    checkCode.className="code";
    checkCode.value=code;
  }
}
 
$(document).ready(function (){
  $("#txt").blur(function (){
    var inputCode=$("#txt").val();
    if(inputCode.length<=0){
      alert("請輸入驗證碼");
    }
    else if(inputCode!=code2){
      alert("驗證碼輸入錯誤");
      createCode(); //重新整理驗證碼
    }
    else{
      alert("驗證碼正確");
    }
  });
  $("#checkCode").click(function(){
    createCode();
  })
  createCode();
})
</script>
</head>
<body>
<form action="#">
<input type="text" id="txt" />
<input type="text" readonly id="checkCode" class="unchanged"/>
</form>
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).var code,宣告一個變數用來儲存驗證碼字串,比如"20+30="。

(2).var code2,宣告一個變數用來儲存驗證碼的計算結果。

(3).function createCode(){},此函式是實現驗證碼的核心部分。

(4).code="",賦值空字串。

(5).var checkCode=document.getElementById("checkCode"),獲取對應的元素物件。

(6).function RndNum(n){

  var rnd="";

  for(var i=0;i<n;i++){

    rnd +=Math.floor(Math.random()*10);

  }   

  return rnd;

},此方法可以生成一個兩位數的數字。

(7).var num = RndNum(2)和var num2 = RndNum(2)分別生成一個兩位數數字。

(8).code = num + "+" + num2 + "=",連結成字串。

(9).code2 = parseInt(num) + parseInt(num2),計算出結果。

(10).if(checkCode){

  checkCode.className="code";

  checkCode.value=code;

},如果存在指定的元素,那麼就設定它的樣式類和給它賦值。

二.相關閱讀:

(1).Math.floor()方法可以參閱javascript Math.floor()一章節。

(2).Math.random()方法可以參閱javascript Math.random()一章節。

(3).parseInt()方法可以參閱javascript parseInt()一章節。

(4).className屬性可以參閱js className一章節。

相關文章