分享一个很好用的验证码插件代码

之前做表单验证一般都是网站系统自动的验证码,今天做专题页面要加前台验证就找了一个验证码的插件,感觉这个还挺方便实用的, 下面不多说,直接把插件代码分享给大家,希望对大家有用。

html代码:

<script type="text/javascript" src="idcode/jquery.min.js"></script>
<script language="javascript" src="idcode/jquery.idcode.js"></script>
<link type="text/css" rel="stylesheet" href="idcode/jquery.idcode.css" />
<script>
$(document).ready(function(){
 $.idcode.setCode();
});
</script>
<span id="idcode"></span>

css代码:

#ehong-code-input{
	width:42px;
	letter-spacing:2px;
	margin:0px 8px 0px 0px;
}
.ehong-idcode-val{
	position:relative;
	padding:1px 4px 1px 4px;
	top:0px;
	*top:-3px;
	letter-spacing:4px;
	display:inline;
	cursor:pointer;
	font-size:16px;
	font-family:"Courier New", Courier, monospace;
	text-decoration:none;
	font-weight:bold;
}
.ehong-idcode-val0{
	border:solid 1px #A4CDED;
	background-color:#ECFAFB;
}

.ehong-idcode-val1{
	border:solid 1px #A4CDED;
	background-color:#FCEFCF;
}
.ehong-idcode-val2{
	border:solid 1px #6C9;
	background-color:#D0F0DF;
}
.ehong-idcode-val3{
	border:solid 1px #6C9;
	background-color:#DCDDD8;
}
.ehong-idcode-val4{
	border:solid 1px #6C9;
	background-color:#F1DEFF;
}
.ehong-idcode-val5{
	border:solid 1px #6C9;
	background-color:#ACE1F1;
}
.ehong-code-val-tip{
	font-size:12px;
	color:#1098EC;
	top:0px;
	*top:-3px;
	position:relative;
	margin:0px 0px 0px 4px;
	cursor:pointer;
}

js代码:

(function($){
	var settings = {
			e	 		: 'idcode',
			codeType 	: { name : 'follow', len: 4},
			codeTip		: '看不清,换一组',
			inputID		: ''
		};

	var _set = {
		storeLable  : 'codeval',
		store		: '#ehong-code-input',
		codeval		: '#ehong-code'
	}
	$.idcode = {
		getCode:function(option){
			_commSetting(option);
			return _storeData(_set.storeLable, null);
		},
		setCode:function(option){
			_commSetting(option);
			_setCodeStyle("#"+settings.e, settings.codeType.name, settings.codeType.len);

		},
		validateCode:function(option){
			_commSetting(option);
			var inputV;
			if(settings.inputID){
				inputV=$('#' + settings.inputID).val();
			}else{
				inputV=$(_set.store).val();
			}

			if(inputV == _storeData(_set.storeLable, null)){
				return true;
			}else{
				_setCodeStyle("#"+settings.e, settings.codeType.name, settings.codeType.len);
				return false;
			}
		}
	};

	function _commSetting(option){
		$.extend(settings, option);
	}

	function _storeData(dataLabel, data){
		var store = $(_set.codeval).get(0);
		if(data){
			$.data(store, dataLabel, data);
		}else{
			return $.data(store, dataLabel);
		}
	}

	function _setCodeStyle(eid, codeType, codeLength){
		var codeObj = _createCode(settings.codeType.name, settings.codeType.len);
		var randNum = Math.floor(Math.random()*6);
		var htmlCode=''
		if(!settings.inputID){
			htmlCode='<span><input id="ehong-code-input" type="text" maxlength="4" /></span>';
		}
		htmlCode+='<div id="ehong-code" class="ehong-idcode-val ehong-idcode-val';
		htmlCode+=String(randNum);
		htmlCode+='" href="#" onblur="return false" onfocus="return false" oncontextmenu="return false" onclick="$.idcode.setCode()">' + _setStyle(codeObj) + '</div>' + '<span id="ehong-code-tip-ck" class="ehong-code-val-tip" onclick="$.idcode.setCode()">'+ settings.codeTip +'</span>';
		$(eid).html(htmlCode);
		_storeData(_set.storeLable, codeObj);
	}

	function _setStyle(codeObj){
		var fnCodeObj = new Array();
		var col = new Array('#BF0C43', '#E69A2A','#707F02','#18975F','#BC3087','#73C841','#780320','#90719B','#1F72D8','#D6A03C','#6B486E','#243F5F','#16BDB5');
		var charIndex;
	   	for(var i=0;i<codeObj.length;i++){
			charIndex = Math.floor(Math.random()*col.length);
			fnCodeObj.push('<font color="' + col[charIndex] + '">' + codeObj.charAt(i) + '</font>');
		}
		return fnCodeObj.join('');
	}
	function _createCode(codeType, codeLength){
	   var codeObj;
	   if(codeType=='follow'){
		   codeObj = _createCodeFollow(codeLength);
	   }else if(codeType=='calc'){
		   codeObj = _createCodeCalc(codeLength);
	   }else{
		   codeObj="";
	   }
	   return codeObj;
	 }

	 function _createCodeCalc(codeLength){
	   var code1, code2, codeResult;
	   var selectChar = new Array('0','1','2','3','4','5','6','7','8','9');
	   var charIndex;
	   for(var i=0;i<codeLength;i++){
		   charIndex = Math.floor(Math.random()*selectChar.length);
		   code1 +=selectChar[charIndex];

		   charIndex = Math.floor(Math.random()*selectChar.length);
		   code2 +=selectChar[charIndex];
	   }
	   return [parseInt(code1), parseInt(code2) , parseInt(code1) + parseInt(code2)] ;
	 }

	 function _createCodeFollow(codeLength){
	   var code = "";
	   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()*selectChar.length);
		   if(charIndex % 2 == 0){
			   code+=selectChar[charIndex].toLowerCase();
		   }else{
			   code +=selectChar[charIndex];
		   }
	   }
	   return code;
	 }

})(jQuery);

JQuery库文件相信大家都有,在这里就不发了,效果图如下:

20140623131844

欢迎转载,转载请注明出处:WEB前端开发 » 分享一个很好用的验证码插件代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值