需要用到驗證碼,突然想能否用js做驗證碼呢?
當然js不能作圖,但是可以用js類比做驗證碼的
於是花了20分鐘按照我的想法嘗試做,最後做出來比我想象中的效果還要好,呵呵
先貼個圖看看
代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>無標題頁</title>
<style type="text/css">
.code
{
background-image:url(code.jpg);
font-family:Arial;
font-style:italic;
color:Red;
border:0;
padding:2px 3px;
letter-spacing:3px;
font-weight:bolder;
}
.unchanged
{
border:0;
}
</style>
<script language="javascript" type="text/javascript">
var code ; //在全域 定義驗證碼
function createCode()
{
code = "";
var codeLength = 6;//驗證碼的長度
var checkCode = document.getElementById("checkCode");
var selectChar = new Array(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<codeLength;i++)
{
var charIndex = Math.floor(Math.random()*36);
code +=selectChar[charIndex];
}
// alert(code);
if(checkCode)
{
checkCode.className="code";
checkCode.value = code;
}
}
function validate ()
{
var inputCode = document.getElementById("input1").value;
if(inputCode.length <=0)
{
alert("請輸入驗證碼!");
}
else if(inputCode != code )
{
alert("驗證碼輸入錯誤!");
createCode();//重新整理驗證碼
}
else
{
alert("^-^ OK");
}
}
</script>
</head>
<body>
<form action="#">
<input type="text" onclick="createCode()" id="input1" />
<input type="text" id="checkCode" class="unchanged" style="width: 80px" /><br />
<input id="Button1" onclick="validate();" type="button" value="確定" />
</form>
</body>
</html>
呵呵,高手看了還望別笑話,僅僅是為了練習而做著玩的 (:
解釋就不用說了,大家看注釋應該就很清楚了
其實那個用來混淆文字的背景圖只是在文字下方加了個背景圖,驗證碼還是不能防止Copy的,所以基本是不能當真正的驗證碼用的。
這裡設計到我最近學習js&css中的一些東西,呵呵,練習,學習,進步~