/**
|
* jQuery EasyUI 1.3.2
|
*
|
* Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.
|
*
|
* Licensed under the GPL or commercial licenses
|
* To use it on other terms please contact us: jeasyui@gmail.com
|
* http://www.gnu.org/licenses/gpl.txt
|
* http://www.jeasyui.com/license_commercial.php
|
*
|
*/
|
(function($){
|
function _1(_2){
|
$(_2).addClass("validatebox-text");
|
};
|
function _3(_4){
|
var _5=$.data(_4,"validatebox");
|
_5.validating=false;
|
var _6=_5.tip;
|
if(_6){
|
_6.remove();
|
}
|
$(_4).unbind();
|
$(_4).remove();
|
};
|
function _7(_8){
|
var _9=$(_8);
|
var _a=$.data(_8,"validatebox");
|
_9.unbind(".validatebox").bind("focus.validatebox",function(){
|
_a.validating=true;
|
_a.value=undefined;
|
(function(){
|
if(_a.validating){
|
if(_a.value!=_9.val()){
|
_a.value=_9.val();
|
if(_a.timer){
|
clearTimeout(_a.timer);
|
}
|
_a.timer=setTimeout(function(){
|
$(_8).validatebox("validate");
|
},_a.options.delay);
|
}else{
|
_10(_8);
|
}
|
setTimeout(arguments.callee,200);
|
}
|
})();
|
}).bind("blur.validatebox",function(){
|
if(_a.timer){
|
clearTimeout(_a.timer);
|
_a.timer=undefined;
|
}
|
_a.validating=false;
|
_b(_8);
|
}).bind("mouseenter.validatebox",function(){
|
if(_9.hasClass("validatebox-invalid")){
|
_c(_8);
|
}
|
}).bind("mouseleave.validatebox",function(){
|
if(!_a.validating){
|
_b(_8);
|
}
|
});
|
};
|
function _c(_d){
|
var _e=$.data(_d,"validatebox").message;
|
var _f=$.data(_d,"validatebox").tip;
|
if(!_f){
|
_f=$("<div class=\"validatebox-tip\">"+"<span class=\"validatebox-tip-content\">"+"</span>"+"<span class=\"validatebox-tip-pointer\">"+"</span>"+"</div>").appendTo("body");
|
$.data(_d,"validatebox").tip=_f;
|
}
|
_f.find(".validatebox-tip-content").html(_e);
|
_10(_d);
|
};
|
function _10(_11){
|
var _12=$.data(_11,"validatebox");
|
if(!_12){
|
return;
|
}
|
var tip=_12.tip;
|
if(tip){
|
var box=$(_11);
|
var _13=tip.find(".validatebox-tip-pointer");
|
var _14=tip.find(".validatebox-tip-content");
|
tip.show();
|
tip.css("top",box.offset().top-(_14._outerHeight()-box._outerHeight())/2);
|
if(_12.options.tipPosition=="left"){
|
tip.css("left",box.offset().left-tip._outerWidth());
|
tip.addClass("validatebox-tip-left");
|
}else{
|
tip.css("left",box.offset().left+box._outerWidth());
|
tip.removeClass("validatebox-tip-left");
|
}
|
_13.css("top",(_14._outerHeight()-_13._outerHeight())/2);
|
}
|
};
|
function _b(_15){
|
var tip=$.data(_15,"validatebox").tip;
|
if(tip){
|
tip.remove();
|
$.data(_15,"validatebox").tip=null;
|
}
|
};
|
function _16(_17){
|
var _18=$.data(_17,"validatebox");
|
var _19=_18.options;
|
var tip=_18.tip;
|
var box=$(_17);
|
var _1a=box.val();
|
function _1b(msg){
|
_18.message=msg;
|
};
|
function _1c(_1d){
|
var _1e=/([a-zA-Z_]+)(.*)/.exec(_1d);
|
var _1f=_19.rules[_1e[1]];
|
if(_1f&&_1a){
|
var _20=eval(_1e[2]);
|
if(!_1f["validator"](_1a,_20)){
|
box.addClass("validatebox-invalid");
|
var _21=_1f["message"];
|
if(_20){
|
for(var i=0;i<_20.length;i++){
|
_21=_21.replace(new RegExp("\\{"+i+"\\}","g"),_20[i]);
|
}
|
}
|
_1b(_19.invalidMessage||_21);
|
if(_18.validating){
|
_c(_17);
|
}
|
return false;
|
}
|
}
|
return true;
|
};
|
if(_19.required){
|
if(_1a==""){
|
box.addClass("validatebox-invalid");
|
_1b(_19.missingMessage);
|
if(_18.validating){
|
_c(_17);
|
}
|
return false;
|
}
|
}
|
if(_19.validType){
|
if(typeof _19.validType=="string"){
|
if(!_1c(_19.validType)){
|
return false;
|
}
|
}else{
|
for(var i=0;i<_19.validType.length;i++){
|
if(!_1c(_19.validType[i])){
|
return false;
|
}
|
}
|
}
|
}
|
box.removeClass("validatebox-invalid");
|
_b(_17);
|
return true;
|
};
|
$.fn.validatebox=function(_22,_23){
|
if(typeof _22=="string"){
|
return $.fn.validatebox.methods[_22](this,_23);
|
}
|
_22=_22||{};
|
return this.each(function(){
|
var _24=$.data(this,"validatebox");
|
if(_24){
|
$.extend(_24.options,_22);
|
}else{
|
_1(this);
|
$.data(this,"validatebox",{options:$.extend({},$.fn.validatebox.defaults,$.fn.validatebox.parseOptions(this),_22)});
|
}
|
_7(this);
|
});
|
};
|
$.fn.validatebox.methods={destroy:function(jq){
|
return jq.each(function(){
|
_3(this);
|
});
|
},validate:function(jq){
|
return jq.each(function(){
|
_16(this);
|
});
|
},isValid:function(jq){
|
return _16(jq[0]);
|
}};
|
$.fn.validatebox.parseOptions=function(_25){
|
var t=$(_25);
|
return $.extend({},$.parser.parseOptions(_25,["validType","missingMessage","invalidMessage","tipPosition",{delay:"number"}]),{required:(t.attr("required")?true:undefined)});
|
};
|
$.fn.validatebox.defaults={required:false,validType:null,delay:200,missingMessage:"This field is required.",invalidMessage:null,tipPosition:"right",rules:{email:{validator:function(_26){
|
return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(_26);
|
},message:"Please enter a valid email address."},url:{validator:function(_27){
|
return /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(_27);
|
},message:"Please enter a valid URL."},length:{validator:function(_28,_29){
|
var len=$.trim(_28).length;
|
return len>=_29[0]&&len<=_29[1];
|
},message:"Please enter a value between {0} and {1}."},remote:{validator:function(_2a,_2b){
|
var _2c={};
|
_2c[_2b[1]]=_2a;
|
var _2d=$.ajax({url:_2b[0],dataType:"json",data:_2c,async:false,cache:false,type:"post"}).responseText;
|
return _2d=="true";
|
},message:"Please fix this field."}}};
|
})(jQuery);
|