www.gusucode.com > baigo CMS PHP开源网站管理系统 v1.2.2源码程序 > baigocms_v1.2.2/bg_static/js/baigoValidator/baigoValidator.min.js

    /*
v2.0.1 jQuery baigoValidator plugin 表单验证插件
(c) 2016 baigo studio - http://www.baigo.net/jquery/baigovalidator.html
License: http://www.opensource.org/licenses/mit-license.php
*/

(function($){$.fn.baigoValidator=function(fileds,options){"use strict";if(this.length<1){return this;}
if(this.length>1){this.each(function(){$(this).baigoValidator(fileds);});return this;}
var _err=0;var thisForm=$(this);var el=this;var _status;var defaults={class_ok:"baigoValidator_y",class_err:"baigoValidator_x",class_loading:"baigoValidator_loading"};var opts=$.extend(defaults,options);var getLength=function(_str){var _numLenth=0;if(_str){for(var i=0;i<_str.length;i++){var _chkCode=_str.charCodeAt(i);if(_chkCode<0x007f){_numLenth++;}else if(_chkCode<=0x07ff){_numLenth+=2;}else if(_chkCode<=0xffff){_numLenth+=3;}else{_numLenth+=4;}}}
return _numLenth;};var verifyLeng=function(_str,_len){if(_len.min>0&&getLength(_str)<_len.min){_status="too_short";}else if(_len.max>0&&getLength(_str)>_len.max){_status="too_long";}else{_status="ok";}
return _status;};var verifyReg=function(_str,_format){var _reg;switch(_format){case"date":_reg=/^[0-9]{4}-(((0?[13578]|(10|12))-(0?[1-9]|[1-2][0-9]|3[0-1]))|(0?2-(0[1-9]|[1-2][0-9]))|((0?[469]|11)-(0[1-9]|[1-2][0-9]|30)))$/;break;case"time":_reg=/^(([1-9]{1})|([0-1][0-9])|([1-2][0-3])):([0-5][0-9])(:([0-5][0-9]))?$/;break;case"datetime":_reg=/^[0-9]{4}-(((0?[13578]|(10|12))-(0?[1-9]|[1-2][0-9]|3[0-1]))|(0?2-(0[1-9]|[1-2][0-9]))|((0?[469]|11)-(0[1-9]|[1-2][0-9]|30)))\s(([1-9]{1})|([0-1][0-9])|([1-2][0-3])):([0-5][0-9])(:([0-5][0-9]))?$/;break;case"int":_reg=/^([+-]?)\d*$/;break;case"digit":_reg=/^([+-]?)\d*\.?\d+$/;break;case"email":_reg=/^\w{0,}(\.)?(\w+)@\w+(\.\w+).*$/;break;case"url":_reg=/^http[s]?:\/\/(\w|-)+(\.(\w|-)+).*$/;break;case"alphabetDigit":_reg=/^[a-z|A-Z|\d]*$/;break;case"strDigit":_reg=/^[\u4e00-\u9fa50-9A-Za-z_]+$/;break;case"ip":_reg=/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;break;default:_reg="";break;}
if(_str&&_format!="text"){if(_reg.test(_str)){return true;}else{return false;}}else{return true;}};var isText=function(_str,_len,_format){var _status_leng=verifyLeng(_str,_len);if(_status_leng!="ok"){_status=_status_leng;}else{if(verifyReg(_str,_format)){_status="ok";}else{_status="format_err";}}
return _status;};var isConfirm=function(_str,_str_target,_len){var _status_leng=verifyLeng(_str,_len);if(_status_leng!="ok"){_status=_status_leng;}else{if(_str==_str_target){_status="ok";}else{_status="not_match";}}
return _status;};var isDigit=function(_num,_len,_format){if(verifyReg(_num,_format)){if(_len.min>0&&_num<_len.min){_status="too_small";}else if(_len.max>0&&_num>_len.max){_status="too_big";}else{_status="ok";}}else{_status="format_err";}
return _status;};var isNum=function(_num,_len){if(_len.min>0&&_num<_len.min){_status="too_few";}else if(_len.max>0&&_num>_len.max){_status="too_many";}else{_status="ok";}
return _status;};var isAjax=function(_str,_len,_validate,_ajax,_msg,_validate_selector){switch(_ajax.type){case"digit":_status=isDigit(_str,_len,_validate.format);break;default:_status=isText(_str,_len,_validate.format);break;}
if(_status!="ok"){return _status;}else{var _ajaxData=_ajax.key+"="+_str+"&a="+Math.random();if(_ajax.attach){_ajaxData=_ajaxData+"&"+_ajax.attach;}
if(_ajax.attach_selectors&&_ajax.attach_keys){$.each(_ajax.attach_selectors,function(_index,_selector){var _str_attachs=$(_selector).val();_ajaxData=_ajaxData+"&"+_ajax.attach_keys[_index]+"="+_str_attachs;});}
$.ajax({url:_ajax.url,dataType:"json",data:_ajaxData,beforeSend:function(){outPut(_msg.selector,_msg.ajaxIng,opts.class_loading,"has-warning");},success:function(_result){switch(_result.re){case"ok":outPut(_msg.selector,_validate.group,"&nbsp;",opts.class_ok,"has-success");break;default:$(_validate_selector).focus();outPut(_msg.selector,_validate.group,_result.re,opts.class_err,"has-error");break;}
_status=_result.re;}});return _status;}};var outPut=function(_msg_selector,_group_selector,_msg,_class,_bootcss){if(_msg_selector){$(_msg_selector).empty();$(_msg_selector).append(_msg);$(_msg_selector).attr("class",_class);$(_msg_selector).show();}
if(_group_selector){$(_group_selector).attr("class",_bootcss);}};var verifyStr=function(_validate_obj){var _set_data=fileds[_validate_obj];var _len=_set_data.len;var _validate=_set_data.validate;var _msg=_set_data.msg;var _validate_selector;if(typeof _validate.selector=="undefined"){_validate_selector="#"+_validate_obj;}else{_validate_selector=_validate.selector;}
var _result;var _num;var _str;switch(_validate.type){case"digit":_str=$(_validate_selector).val();_status=isDigit(_str,_len,_validate.format);break;case"radio":case"checkbox":_num=$(_validate_selector+":checked").size();_status=isNum(_num,_len);break;case"select":if(_len.min>1){_num=$(_validate_selector+" :selected").size();_status=isNum(_num,_len);}else{_str=$(_validate_selector).val();_status=isText(_str,_len,"text");if(_status=="too_short"){_status="too_few";}}
break;case"ajax":var _ajax=_set_data.ajax;_str=$(_validate_selector).val();_status=isAjax(_str,_len,_validate,_ajax,_msg,_validate_selector);break;case"confirm":var _str_target=$(_validate.target).val();_str=$(_validate_selector).val();_status=isConfirm(_str,_str_target,_len);break;default:_str=$(_validate_selector).val();_status=isText(_str,_len,_validate.format);break;}
switch(_status){case"ok":outPut(_msg.selector,_validate.group,"&nbsp;",opts.class_ok,"has-success");_result=true;break;default:$(_validate_selector).focus();outPut(_msg.selector,_validate.group,_msg[_status],opts.class_err,"has-error");_result=false;break;}
return _result;};el.verify=function(){_err=0;$(thisForm).find("[data-validate]:visible").each(function(){var _validate_obj=$(this).data("validate");if(_validate_obj.length<1){_validate_obj=$(this).attr("id");}
verifyStr(_validate_obj);if(!verifyStr(_validate_obj)){_err++;}});if(_err>0){return false;}else{return true;}};$(thisForm).find("[data-validate]:visible").change(function(){var _validate_obj=$(this).data("validate");if(_validate_obj.length<1){_validate_obj=$(this).attr("id");}
verifyStr(_validate_obj);});return this;};})(jQuery);