$(document).ready(function() { $.Y_Form(); // $('.formCheck').each(function(i, oForm) { $.Y_Form.bindForm($(oForm)); $('input.skin,textarea.skin,select.skin', oForm).each(function(iy, oPd) { if(!$(oPd).parents('.formItem.not').length) { $.Y_Form.bindEvents($(oPd), $(oForm)); } }); }); // 绑定label $b.delegate('label._bind', 'click', function(event) { var $label = $(this); if($label.parents('.locked').length) return !1; if($label.is('.focus')) { $label.parent().find('.skin').eq(0).trigger('focus.ysqInit'); } else { var $ipt = $label.parent().find('input,.bindClick'), $P = $ipt.parents('.formItem'); // $ipt.is('.bindClick')&&$ipt.trigger('click'); $ipt.is(':radio') && ($ipt.prop('checked', !0), onoff($ipt.parent()), $('.buts', $P).attr('pd') != 'not' && $P.removeClass('red').find('.aftPD').remove()); $ipt.is(':checkbox') && ($ipt.prop('checked', !$ipt.prop('checked')).parent().toggleClass('on'), $('.buts', $P).attr('pd') != 'not' && $ipt.prop('checked') && $P.removeClass('red').find('.aftPD').remove()); } }); }); $.Y_Form=function(e){e=$.extend({},{isSlideVerify:!1},e);var r={l:"",r:""},t={common:!0,checkbox:!1,password:!1};$.Y_Form.addWords=function(e,r,t){e.after(''+r+"")},$.Y_Form.regTrue=function(e,r){return(e=e.is(".formItem")?e:e.parents(".formItem")).hasClass("red")&&r&&e.removeClass("red"),!0},$.Y_Form.regFalse=function(e,r){return(e=e.is(".formItem")?e:e.parents(".formItem")).hasClass("red")||r&&e.addClass("red"),!1},$.Y_Form.console=function(e){console.log(decodeURIComponent(e.serialize(),!0))},$.Y_Form.bindEvents=function(e,r){e.off("focus.regex").on("focus.regex",function(e){$(this).addClass("_focus")}).off("blur.regex").on("blur.regex",function(e){var t=$(this);t.removeClass("_focus"),$.Y_Form.eventCheckInput(t)&&!!t.data("fn_postCheck")&&t.data("fn_postCheck").call(this,t),t.is(":password")&&$.Y_Form.checkPassword($(":password",r))}).off("input.regex").on("input.regex",function(e){var r=$(this);9!=e.keyCode&&$.Y_Form.eventCheckInput(r)}).off("change.regex").on("change.regex",function(e){var r=$(this);r.is("select")&&$.Y_Form.eventCheckInput(r)})},$.Y_Form.regEx=function(e,r,t,n){return function(){switch(e){case"not":return!0;case"notnull":return!isNull(r);case"sex":return"男"==r||"女"==r;case"birthday":return/^(?:19|2[0-9])\d{2}\-(?:0[1-9]|1[1-2])\-(?:0[1-9]|[12]\d|3[01])$/.test(r);case"age":return/^\d{1,3}$/.test(r);case"name":return navigator.userAgent.match("iPhone OS")?!isNull(r):/^[\u4e00-\u9fa5]+$|^[a-zA-Z][a-zA-Z ]+$/.test(r);case"sfz":return/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(r);case"tel":return/^(?:1)\d{10}$/.test(r);case"fixedline":return/^(?:0[1-9]\d)-\d{8}$|^0[1-9]\d{2}-\d{7,8}$/.test(r);case"contact":return $.Y_Form.regEx("fixedline",r,t,n)||$.Y_Form.regEx("tel",r,t,n);case"post":return/^[1-9]\d{5}(?!d)|0[1-9]\d{4}(?!d)$/.test(r);case"fax":return/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/.test(r);case"email":return/^\w+(?:\.\w+)*@\w+(?:\.\w+)+$/.test(r);case"qq":return/^[1-9]\d{4,10}$/.test(r);case"sel":return!isNull(r)&&"none"!=r;case"bank":return/^\d{16}|\d{19}$/.test(r);case"bankCVV":return/^\d{3,4}$/.test(r);case"num":return/^\d+(?:\.\d+)?$/.test(r);case"integer":return/^\d+$/.test(r);case"account":return/^[a-zA-Z][\w|\_]{5,17}$/.test(r);case"account2":return $.Y_Form.regEx("email",r,t,n)||$.Y_Form.regEx("tel",r,t,n);case"account3":return $.Y_Form.regEx("account",r,t,n)||$.Y_Form.regEx("account2",r,t,n);case"password":return r.length>=4;case"yzm4":return/^\w{4}$/.test(r);case"yzm6":return/^\w{6}$/.test(r);case"valLess":return r/1Number(t.attr("lmt_less"));case"less":return r.lengthNumber(t.attr("lmt_more"));case"size":return/^(\d{1,3}(\.5)?)(,\d{1,3}(\.5)?)*$/.test(r);default:return!0}}()?$.Y_Form.regTrue(t,n):$.Y_Form.regFalse(t,n)},$.Y_Form.eventCheckInput=function(e){if(e.siblings(".warn-words").remove(),e.parents(".connectCheck").length){var r=e.parents(".connectCheck"),n=!1;return $("[pd]",r).each(function(e,r){$.Y_Form.regEx($(r).attr("pd"),$(r).val(),$(r),!0)&&(n=!0)}),n?$.Y_Form.regTrue($("[pd]",r)):($.Y_Form.Warning(r,!1,!0),t.common=!1),n}return $.Y_Form.regEx(e.attr("pd"),e.val(),e,!0)},$.Y_Form.checkPassword=function(e,r,n){function s(t,s){$.Y_Form.addWords(e.eq(a+s),t,"warn-pw"),r&&n&&o[0].onceTan&&(o.hasClass("._tipPop").length&&Y_Tan(t),o[0].onceTan=!1)}r=!!r;var o=e.parents("form");if(0!=o.attr("bCheckPW")){var a=3==e.length?1:0,c={words:[],len:[]},l=!0;e.siblings(".warn-pw").remove(),e.each(function(e,r){c.words.push($(r).val()),c.len.push($(r).val().length)}),c.len[0]>0&&c.len[1]>0&&(a&&c.words[0]==c.words[1]&&(s("新密码不能与原密码相同",0),l=!1),c.len[a+1]>0&&c.words[a]!=c.words[a+1]&&(s((a?"新":"")+(c.len[a]==c.len[a+1]?"密码不一致":"密码长度不一致"),1),l=!1),t.password=l)}},$.Y_Form.checkForm=function(e,r,n){var s=e.parents("form");return t={common:!0,checkbox:!0,password:!0},s[0].onceTan=!0,$(".formItem",s).not(".not,:hidden").each(function(e,o){var a=$(o);$.Y_Form.regFalse($("[pd]",o),r),$(":radio,:checkbox",a).length&&"btn"==$(".buts",a).attr("pd")?(t.checkbox=!1,(s.hasClass("_tipAll")||s[0].onceTan)&&$(":radio,:checkbox",a).each(function(e,n){if(1==$(n).prop("checked")){if($(n).is(".else-Eg")){var s=$(n).siblings(".else-Et");t.checkbox=$.Y_Form.regEx(s.attr("pd"),s.val(),s,r)}else t.checkbox=!0;return!0}}),t.checkbox?$.Y_Form.regTrue(a,r):n&&$.Y_Form.Warning($(".buts",a),!0)):$("[pd]",a).length&&$("[pd]",a).each(function(e,s){if("not"!=$(s).attr("pd")){var o=$(s),a=o.attr("pd"),c=o.val();if(!o.is("select")||!o.hasClass("form_disabled")&&!o.hasClass("_disabled")&&"none"!=o.css("display"))if(o.parents(".connectCheck").length){var l=o.parents(".connectCheck"),i=!1;$("[pd]",l).each(function(e,t){$.Y_Form.regEx($(t).attr("pd"),$(t).val(),$(t),r)&&(i=!0)}),i?$.Y_Form.regTrue($("[pd]",l)):(n&&$.Y_Form.Warning(l,!1,!0),t.common=!1)}else isNull(c)?(n&&$.Y_Form.Warning(o,!1,r),t.common=!1):$.Y_Form.regEx(a,c,o,r)||(n&&$.Y_Form.Warning(o,!0,r),t.common=!1)}})}),$(":password",s).length>1&&$.Y_Form.checkPassword($(":password",s),!0,n),t.common&&t.password&&t.checkbox?(!!ysq.TT&&console.log("验证通过"),!0):(!!ysq.TT&&console.error("验证失败"),!1)},$.Y_Form.Warning=function(e,t,n){function s(n){function s(){o.data("tipCallback")?o.data("tipCallback").call(this,o,e,function(){n&&e.trigger("focus.ysqInit")}):n&&e.trigger("focus.ysqInit")}if(o.hasClass("_notWarn"))s();else{var c=""+((e.is(".formItem")?$(".focus",a).text():e.attr("placeholder"))||"").replace(/请输入|请填写|请选择|\ |\ |\ |\ |\ |\ |\*|\:||\:|\:/g,"")+"";if(c=t?e.is(":text")||e.is("textarea")||e.is(":password")?e.attr("data-fWarn-error")||r.l+c+r.r+"格式填写错误":e.attr("data-fWarn-error")||"请选择"+(r.l+c+r.r):e.attr("data-fWarn-null")||"请填写"+(r.l+(e.is(":password")?c||"密码":c||"内容")+r.r),o.hasClass("_tipPop"))Y_Tan(c,{fnNo:function(){s()}});else if(o.hasClass("_tipTop")){$(".topTip",o).length||o.append('
');var l=$(".topTip",o);l.html(c),setTimeout(function(){l.removeClass("_hide")},1),clearTimeout(l[0].timer),l[0].timer=setTimeout(function(){l.addClass("_hide")},1e3),s()}else o.hasClass("_tipWords")?($.Y_Form.addWords(e,c,"warn-words"),s()):s()}}n=n||!1;var o=e.parents("form"),a=e.is(".formItem")?e:e.parents(".formItem");o.hasClass("_tipAll")?(o[0].onceTan&&!o.hasClass("checkScroll")||Y_BodyScroll({goal:e.offset().top-w.height()/2,dur:330,cbk:function(){o[0].onceTan=!0}}),s(!1)):o[0].onceTan&&(o.hasClass("checkScroll")?Y_BodyScroll({goal:e.offset().top-w.height()/2,dur:330,cbk:function(){s(!1)}}):s(n)),o[0].onceTan=!1},$.Y_Form.bindForm=function(e){function r(e,r){t.common&&t.password&&t.checkbox?r.removeClass("form_disabled"):r.addClass("form_disabled")}(e=e||$(".formCheck")).addClass("form_disabled"),$("input[pd],select[pd],[pd] :radio,[pd] :checkbox",e).on("change.formDisabled",function(t){r(0,e)}).on("input.formDisabled",function(t){r(0,e)}),e.undelegate("[ysq-btn-submit]","click.enterForm").delegate("[ysq-btn-submit]","click.enterForm",function(e){var r=$(this),t=r.parents("form");return t.hasClass("_tipWords")&&$(".aftPD",t).length&&$(".aftPD",t).remove(),"true"==t.attr("data-ajax")?($.Y_Form.checkForm(r,!0,!0)?("function"==typeof t[0].fnSubmit&&t[0].fnSubmit.call(this,t),!!ysq.TT&&console.log("ajax提交")):!!ysq.TT&&console.error("form_disabled,不允许提交"),prevent_default(e)):$.Y_Form.checkForm(r,!0,!0)?void 0:(r.hasClass("interact")&&r.Y_Animation("headShake"),prevent_default(e))}),e.undelegate("[ysq-btn-reset]","click.resetForm").delegate("[ysq-btn-reset]","click.resetForm",function(e){var r=$(this).parents("form");prevent_default(e),Y_Tan("即将清空所有已填写内容,是否确认重置",{bAutoClose:!1,fnNo:function(){},fnYes:function(){r[0].reset(),r.find(".red").removeClass("red"),r.find(".buts .btn").removeClass("on"),r.find(".aftPD").remove()}})})}}; $.fn.extend({Y_fnSubmit:function(e){return e=$.extend({},{ajaxSubmit:null,slideVerify:{open:!1,rootPath:"",imgs:null,ready:null,success:null,error:null}},e),this.each(function(i,s){$("#slideVerifyPanel").length||$("
",{id:"slideVerifyPanel",html:'
'}).appendTo($b),s.fnSubmit=function(){if(e.slideVerify.open){var i=e.slideVerify.rootPath,m=$("#slideVerifyPanel");$(".contain",m).slideVerify({type:2,vOffset:10,vSpace:0,imgSize:{width:"100%",height:"62.5%"},imgName:e.imgs?e.imgs:[i+"images/yzmIMG/A.jpg",i+"images/yzmIMG/B.jpg",i+"images/yzmIMG/C.jpg",i+"images/yzmIMG/D.jpg",i+"images/yzmIMG/E.jpg",i+"images/yzmIMG/F.jpg",i+"images/yzmIMG/G.jpg",i+"images/yzmIMG/H.jpg",i+"images/yzmIMG/I.jpg",i+"images/yzmIMG/J.jpg",i+"images/yzmIMG/K.jpg",i+"images/yzmIMG/L.jpg",i+"images/yzmIMG/M.jpg",i+"images/yzmIMG/N.jpg",i+"images/yzmIMG/O.jpg",i+"images/yzmIMG/P.jpg",i+"images/yzmIMG/Q.jpg",i+"images/yzmIMG/R.jpg",i+"images/yzmIMG/S.jpg",i+"images/yzmIMG/T.jpg",i+"images/yzmIMG/U.jpg",i+"images/yzmIMG/V.jpg",i+"images/yzmIMG/W.jpg",i+"images/yzmIMG/X.jpg",i+"images/yzmIMG/Y.jpg",i+"images/yzmIMG/Z.jpg"],ready:function(i){m.addClass("show").find(".zhezhao").click(function(e){m.removeClass("show")}),e.slideVerify.ready&&e.slideVerify.ready.call(this,$(s))},success:function(i){setTimeout(function(){m.removeClass("show"),e.ajaxSubmit&&e.ajaxSubmit.call(this,$(s)),e.slideVerify.success&&e.slideVerify.success.call(this,$(s))},500)},error:function(i){e.slideVerify.error&&e.slideVerify.error.call(this,$(s))}})}else e.ajaxSubmit&&e.ajaxSubmit.call(this,$(s))}}),this}}); // slideverify.min.js ;(function($,window,document,undefined){var Code=function(ele,opt){this.$element=ele,this.defaults={type:1,figure:100,arith:0,width:'200px',height:'60px',fontSize:'30px',codeLength:6,btnId:'check-btn',ready:function(){},success:function(){},error:function(){}},this.options=$.extend({},this.defaults,opt)};var _code_chars=[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','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'];var _code_color1=['#fffff0','#f0ffff','#f0fff0','#fff0f0'];var _code_color2=['#FF0033','#006699','#993366','#FF9900','#66CC66','#FF33CC'];Code.prototype={init:function(){var _this=this;this.loadDom();this.setCode();this.options.ready();this.$element[0].onselectstart=document.body.ondrag=function(){return false;};this.$element.find('.verify-code, .verify-change-code').on('click',function(){_this.setCode();});this.htmlDoms.code_btn.on('click',function(){_this.checkCode();})},loadDom:function(){var panelHtml='';this.$element.append(panelHtml);this.htmlDoms={code_btn:$('#'+this.options.btnId),code:this.$element.find('.verify-code'),code_area:this.$element.find('.verify-code-area'),code_input:this.$element.find('.varify-input-code'),};this.htmlDoms.code.css({'width':this.options.width,'height':this.options.height,'line-height':this.options.height,'font-size':this.options.fontSize});this.htmlDoms.code_area.css({'width':this.options.width});},setCode:function(){var color1Num=Math.floor(Math.random()*3);var color2Num=Math.floor(Math.random()*5);this.htmlDoms.code.css({'background-color':_code_color1[color1Num],'color':_code_color2[color2Num]});this.htmlDoms.code_input.val('');var code='';this.code_chose='';if(this.options.type==1){for(var i=0;i'+_code_chars[charNum]+'';}}else{var num1=Math.floor(Math.random()*this.options.figure);var num2=Math.floor(Math.random()*this.options.figure);if(this.options.arith==0){var tmparith=Math.floor(Math.random()*3);} switch(tmparith){case 1:this.code_chose=parseInt(num1)+parseInt(num2);code=num1+' + '+num2+' = ?';break;case 2:if(parseInt(num1)
';tmpHtml='
';} panelHtml+='
向右滑动完成验证
'+tmpHtml+'
';this.$element.append(panelHtml);this.htmlDoms={gap:this.$element.find('.verify-gap'),sub_block:this.$element.find('.verify-sub-block'),img_panel:this.$element.find('.verify-img-panel'),bar_area:this.$element.find('.verify-bar-area'),move_block:this.$element.find('.verify-move-block'),left_bar:this.$element.find('.verify-left-bar'),msg:this.$element.find('.verify-msg'),icon:this.$element.find('.verify-icon'),refresh:this.$element.find('.verify-refresh')};this.status=false;this.setSize=this.resetSize(this);this.htmlDoms.gap.css({'width':this.setSize.blockSize_width,'height':this.setSize.blockSize_height});this.htmlDoms.sub_block.css({'width':this.setSize.blockSize_width,'height':this.setSize.blockSize_height});this.htmlDoms.img_panel.css({'width':this.setSize.img_width,'height':this.setSize.img_height,'background':'url('+this.options.imgName[this.img_rand]+')','background-size':this.setSize.img_width+' '+this.setSize.img_height});this.htmlDoms.bar_area.css({'width':this.setSize.bar_width,'height':this.setSize.bar_height,'line-height':this.setSize.bar_height});this.htmlDoms.move_block.css({'width':this.setSize.bar_height,'height':this.setSize.bar_height});this.htmlDoms.left_bar.css({'width':this.setSize.bar_height,'height':this.setSize.bar_height});this.randSet();},start:function(e){this.htmlDoms.msg.text('');this.htmlDoms.move_block.css('background-color','#337ab7');this.htmlDoms.left_bar.css('border-color','#337AB7');this.htmlDoms.icon.css('color','#fff');e.stopPropagation();this.status=true;},move:function(e){if(this.status){if(!e.touches){var x=e.clientX;}else{var x=e.touches[0].pageX;} var bar_area_left=Slide.prototype.getLeft(this.htmlDoms.bar_area[0]);var move_block_left=x-bar_area_left;if(this.options.type!=1){if(move_block_left>=this.htmlDoms.bar_area[0].offsetWidth){move_block_left=this.htmlDoms.bar_area[0].offsetWidth;}}else{if(move_block_left>=this.htmlDoms.bar_area[0].offsetWidth){this.$element.find('.verify-msg:eq(1)').text('松开验证');move_block_left=this.htmlDoms.bar_area[0].offsetWidth;}else{this.$element.find('.verify-msg:eq(1)').text('');}} if(move_block_left<=parseInt(this.setSize.blockSize_width)){move_block_left=parseInt(this.setSize.blockSize_width);} this.htmlDoms.move_block.css('left',move_block_left-parseInt(this.setSize.blockSize_width)+"px");this.htmlDoms.left_bar.css('width',move_block_left+"px");}},end:function(){var _this=this;if(this.status){if(this.options.type!=1){var vOffset=parseInt(this.options.vOffset);if(parseInt(this.htmlDoms.gap.css('left'))>=(parseInt(this.htmlDoms.move_block.css('left'))-vOffset)&&parseInt(this.htmlDoms.gap.css('left'))<=(parseInt(this.htmlDoms.move_block.css('left'))+vOffset)){this.htmlDoms.move_block.css('background-color','#5cb85c');this.htmlDoms.left_bar.css({'border-color':'#5cb85c','background-color':'#fff'});this.htmlDoms.icon.css('color','#fff');this.htmlDoms.icon.removeClass('icon-right');this.htmlDoms.icon.addClass('icon-check');this.htmlDoms.refresh.hide();this.htmlDoms.move_block.unbind('mousedown touchstart');this.options.success&&this.options.success.call(this,_this);}else{this.htmlDoms.move_block.css('background-color','#d9534f');this.htmlDoms.left_bar.css('border-color','#d9534f');this.htmlDoms.icon.css('color','#fff');this.htmlDoms.icon.removeClass('icon-right');this.htmlDoms.icon.addClass('icon-close');setTimeout(function(){_this.htmlDoms.move_block.css({'left':'0px'});_this.htmlDoms.left_bar.css({'width':_this.setSize.blockSize_width});_this.htmlDoms.left_bar.css({'border-color':'#ddd'});_this.htmlDoms.move_block.css('background-color','transparent');_this.htmlDoms.icon.css('color','#000');_this.htmlDoms.icon.removeClass('icon-close');_this.htmlDoms.icon.addClass('icon-right');_this.$element.find('.verify-msg:eq(0)').text('向右滑动完成验证');},400);this.options.error&&this.options.error.call(this,_this);}}else{if(parseInt(this.htmlDoms.move_block.css('left'))>=(parseInt(this.setSize.bar_width)-parseInt(this.setSize.bar_height)-parseInt(this.options.vOffset))){this.htmlDoms.move_block.css('background-color','#5cb85c');this.htmlDoms.left_bar.css({'color':'#4cae4c','border-color':'#5cb85c','background-color':'#fff'});this.htmlDoms.icon.css('color','#fff');this.htmlDoms.icon.removeClass('icon-right');this.htmlDoms.icon.addClass('icon-check');this.htmlDoms.refresh.hide();this.htmlDoms.move_block.unbind('mousedown');this.htmlDoms.move_block.unbind('touchstart');this.$element.find('.verify-msg:eq(1)').text('验证成功');this.options.success&&this.options.success.call(this,_this);}else{this.htmlDoms.move_block.css('background-color','#d9534f');this.htmlDoms.left_bar.css('border-color','#d9534f');this.htmlDoms.icon.css('color','#fff');this.htmlDoms.icon.removeClass('icon-right');this.htmlDoms.icon.addClass('icon-close');setTimeout(function(){_this.htmlDoms.move_block.css({'left':'0px'});_this.htmlDoms.left_bar.css({'width':_this.setSize.blockSize_width});_this.htmlDoms.left_bar.css({'border-color':'#ddd'});_this.htmlDoms.move_block.css('background-color','#fff');_this.htmlDoms.icon.css('color','#000');_this.htmlDoms.icon.removeClass('icon-close');_this.htmlDoms.icon.addClass('icon-right');_this.$element.find('.verify-msg:eq(0)').text('向右滑动解锁');},400);this.options.error&&this.options.error.call(this,_this);}} this.status=false;}},resetSize:function(obj){var img_width,img_height,bar_width,bar_height;var baseWH=obj.$element.outerWidth()||$(window).width();if(obj.options.imgSize.width.indexOf('%')!=-1){img_width=parseInt(obj.options.imgSize.width)/100*baseWH;  }else{img_width=obj.options.imgSize.width;} if(obj.options.imgSize.height.indexOf('%')!=-1){img_height=parseInt(obj.options.imgSize.height)/100*baseWH;  }else{img_height=obj.options.imgSize.height;} if(obj.options.barSize.width.indexOf('%')!=-1){bar_width=parseInt(obj.options.barSize.width)/100*baseWH;  }else{bar_width=obj.options.barSize.width;} if(obj.options.barSize.height.indexOf('%')!=-1){bar_height=parseInt(obj.options.barSize.height)/100*baseWH;  }else{bar_height=obj.options.barSize.height;} if(obj.options.blockSize.width.indexOf('%')!=-1){blockSize_width=parseInt(obj.options.blockSize.width)/100*baseWH;  }else{blockSize_width=obj.options.blockSize.width;} if(obj.options.blockSize.height.indexOf('%')!=-1){blockSize_height=parseInt(obj.options.blockSize.height)/100*baseWH;  }else{blockSize_height=obj.options.blockSize.height;} return{img_width:parseInt(img_width)+"px",img_height:parseInt(img_height)+"px",bar_width:parseInt(bar_width)+"px",bar_height:parseInt(bar_height)+"px",blockSize_width:parseInt(blockSize_width)+"px",blockSize_height:parseInt(blockSize_height)+"px"};},randSet:function(){var rand1=Math.floor(Math.random()*9+1);var rand2=Math.floor(Math.random()*9+1);var top=parseInt(rand1*parseInt(this.setSize.img_height)/15+parseInt(this.setSize.img_height)*0.1);var left=parseInt(rand2*parseInt(this.setSize.img_width)/15+parseInt(this.setSize.img_width)*0.1);this.$element.find('.verify-gap').css({'top':top,'left':left});this.$element.find('.verify-sub-block').css({'top':'-'+(parseInt(this.setSize.img_height)-top)+'px','background-image':'url('+this.options.imgName[this.img_rand]+')','background-size':parseInt(this.setSize.img_width)+"px"+' '+parseInt(this.setSize.img_height)+"px",'background-position-y':'-'+top+'px','background-position-x':'-'+left+'px'});},refresh:function(){this.randSet();this.img_rand=Math.floor(Math.random()*this.options.imgName.length);this.$element.find('.verify-img-panel').css({'background':'url('+this.options.imgName[this.img_rand]+')','background-size':parseInt(this.setSize.img_width)+"px"+' '+parseInt(this.setSize.img_height)+"px"});this.$element.find('.verify-sub-block').css({'background-image':'url('+this.options.imgName[this.img_rand]+')','background-size':parseInt(this.setSize.img_width)+"px"+' '+parseInt(this.setSize.img_height)+"px"});},getLeft:function(node){var left=$(node).offset().left;return left;}};var Points=function(ele,opt){this.$element=ele,this.defaults={defaultNum:4,checkNum:3,imgName:['1.jpg','2.jpg'],imgSize:{width:'400px',height:'200px',},barSize:{width:'400px',height:'40px',},ready:function(){},success:function(){},error:function(){}},this.options=$.extend({},this.defaults,opt)};Points.prototype={init:function(){var _this=this;_this.loadDom();_this.refresh();_this.options.ready();this.$element[0].onselectstart=document.body.ondrag=function(){return false;};_this.$element.find('.verify-img-panel canvas').on('click',function(e){_this.checkPosArr.push(_this.getMousePos(this,e));if(_this.num==_this.options.checkNum){_this.num=_this.createPoint(_this.getMousePos(this,e));setTimeout(function(){var flag=_this.comparePos(_this.fontPos,_this.checkPosArr);if(flag==false){_this.options.error();_this.$element.find('.verify-bar-area').css({'color':'#d9534f','border-color':'#d9534f'});_this.$element.find('.verify-msg').text('验证失败');setTimeout(function(){_this.$element.find('.verify-bar-area').css({'color':'#000','border-color':'#ddd'});_this.refresh();},400);}else{_this.$element.find('.verify-bar-area').css({'color':'#4cae4c','border-color':'#5cb85c'});_this.$element.find('.verify-msg').text('验证成功');_this.$element.find('.verify-refresh').hide();_this.$element.find('.verify-img-panel').unbind('click');_this.options.success();}},400);} if(_this.num<_this.options.checkNum){_this.num=_this.createPoint(_this.getMousePos(this,e));}});_this.$element.find('.verify-refresh').on('click',function(){_this.refresh();});},loadDom:function(){this.fontPos=[];this.checkPosArr=[];this.num=1;this.img_rand=Math.floor(Math.random()*this.options.imgName.length);var panelHtml='';var tmpHtml='';this.setSize=Slide.prototype.resetSize(this);panelHtml+='
';this.$element.append(panelHtml);this.htmlDoms={img_panel:this.$element.find('.verify-img-panel'),bar_area:this.$element.find('.verify-bar-area'),msg:this.$element.find('.verify-msg'),};this.htmlDoms.img_panel.css({'width':this.setSize.img_width,'height':this.setSize.img_height,'background-size':this.setSize.img_width+' '+this.setSize.img_height,'margin-bottom':this.options.vSpace+'px'});this.htmlDoms.bar_area.css({'width':this.setSize.barSize_width,'height':this.setSize.bar_height,'line-height':this.setSize.bar_height});},drawImg:function(obj,img){var canvas=this.$element.find('canvas')[0];var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0,parseInt(this.setSize.img_width),parseInt(this.setSize.img_height));var fontSizeArr=['italic small-caps bold 20px microsoft yahei','small-caps normal 25px arial','34px microsoft yahei'];var fontStr='天地玄黄宇宙洪荒日月盈昃辰宿列张寒来暑往秋收冬藏闰余成岁律吕调阳云腾致雨露结为霜金生丽水玉出昆冈剑号巨阙珠称夜光果珍李柰菜重芥姜海咸河淡鳞潜羽翔龙师火帝鸟官人皇始制文字乃服衣裳推位让国有虞陶唐吊民伐罪周发殷汤坐朝问道垂拱平章爱育黎首臣伏戎羌遐迩体率宾归王';var fontChars=[];var avg=Math.floor(parseInt(this.setSize.img_width)/(parseInt(this.options.defaultNum)+1));var tmp_index='';var color2Num=Math.floor(Math.random()*5);for(var i=1;i<=this.options.defaultNum;i++){fontChars[i-1]=this.getChars(fontStr,fontChars);tmp_index=Math.floor(Math.random()*3);ctx.font=fontSizeArr[tmp_index];ctx.fillStyle=_code_color2[color2Num];if(Math.floor(Math.random()*2)==1){var tmp_y=Math.floor(parseInt(this.setSize.img_height)/2)+tmp_index*20+20;}else{var tmp_y=Math.floor(parseInt(this.setSize.img_height)/2)-tmp_index*20;} ctx.fillText(fontChars[i-1],avg*i,tmp_y);this.fontPos[i-1]={'char':fontChars[i-1],'x':avg*i,'y':tmp_y};} for(var i=0;i<(this.options.defaultNum-this.options.checkNum);i++){this.shuffle(this.fontPos).pop();} var msgStr='';for(var i=0;i0){tmp_rand=tmp_rand-1;} tmp_char=fontStr.charAt(tmp_rand);if($.inArray(tmp_char,fontChars)==-1){return tmp_char;}else{return Points.prototype.getChars(fontStr,fontChars);}},shuffle:function(arr){var m=arr.length,i;while(m){i=(Math.random()*m--)>>>0;[arr[m],arr[i]]=[arr[i],arr[m]]} return arr;},createPoint:function(pos){this.htmlDoms.img_panel.append('
'+this.num+'
');return++this.num;},comparePos:function(fontPos,checkPosArr){var flag=true;for(var i=0;ifontPos[i].x&&parseInt(checkPosArr[i].x)-40fontPos[i].y&&parseInt(checkPosArr[i].y)-40