常用前端JS检测

var validator = {
Require : /.+/,
English : /^[A-Za-z]+$/,
Number : /^-?\d+$/,
Chinese : /^[\u0391-\uFFE5]+$/,
Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,
Mobile : /^((\+86)|(86))?\d{11}$/,
Password : /^[\w\W]{6,20}$/,
Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
QQ : /^[1-9]\d{4,12}$/,
IdCard : /^\d{15}(\d{2}[x|X0-9])?$/,
Float : /^-?(((0)(\.\d+)?)|([1-9](\d+)?)(\.\d+)?)$/,
titleLimit : /(?!.*关于|.*有关|.*相关)^.*$/
};


var $errorMsg;
$(function(){
//关闭form表单中input自动完成功能
$("form").attr("autocomplete","off");
  //  var width = $("body").width()+"px";
// var height = $("body").height()+"px";
// var errorMsg = "<div class='error_msg' style='width:"+width+";height:"+height+"'></div>";
var errorMsg = "<div class='error_msg'></div>";
// var positionTop = $(e).position().top+3+"px";
// var positionLeft = $(e).position().left+"px";
var divTop = "<div class='error_list_top'><div class='error_list_topL'></div><div class='error_list_topC'></div><div class='error_list_topR'></div></div>";
var divCenter = "<div class='error_list_center'><div class='error_list_centerL'></div><div class='error_list_centerC'></div><div class='error_list_centerR'></div></div>";
var divBottom = "<div class='error_list_bottom'><div class='error_list_bottomL'></div><div class='error_list_bottomC'></div><div class='error_list_bottomR'></div></div>";
var div = "<div class='error_list'>"+divTop+divCenter+divBottom+"</div>";
$("body").append(div);
$(".error_list_centerC").append(errorMsg);
$errorMsg = $(".error_msg");


$(".validator").each(function(){
$(this).blur(function(){
blurSelf(this);
});
$(this).focus(function(){
focusSelf(this);

/*
if(!b){
flag = false;
var left = $(this).position().left+$(this).width()+10+"px"; 
var top = $(this).position().top+"px";

if($(this).attr("type") == "radio" || $(this).attr("type") == "checkbox"){
if($("#"+name).length == 0){
left = $(".validator[name='"+name+"']").eq($(".validator[name='"+name+"']").size()-1).position().left+$(this).width()+"px";
top = $(".validator[name='"+name+"']").eq($(".validator[name='"+name+"']").size()-1).position().top+"px";
var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+$(this).attr("msg")+"</div>";
$("body").append(div);
}
}else{
var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+$(this).attr("msg")+"</div>";
$("body").append(div);
}
$(this).parent().addClass("control-group error");

if($(this).attr("type") == "text" || $(this).attr("type") == "password" || $(this)[0].tagName == "textarea"){
var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+$(this).attr("msg")+"</div>";
$("body").append(div);
$(this).parent().removeClass("error").addClass("control-group info");
}
}else{
if($("#"+name).length>0){


$("#"+name).remove();
}
}*/

});
});
});
//$obj 自定义提示菜单定位、如果没有则默认点击事件对象的位置
function Validator(e,$obj){
$(e).addClass("validatorbtn");
$errorMsg.html("");
// var require,english,number,chinese,phone,mobile,password,repeat,email,qq,idCard,range;
// requireFlag,englishFlag,numberFlag,chineseFlag,phoneFlag,mobileFlag,passwordFlag,repeatFlag,emailFlag,qqFlag,idCardFlag,rangeFlag;  
var flag = true;




/*
$require = $("input[name='require']");
$english = $("input[name='english']");
$number = $("input[name='number']");
$chinese = $("input[name='chinese']");
$phone = $("input[name='phone']");
$mobile = $("input[name='mobile']");
$password = $("input[name='password']");
$repeat = $("input[name='repeat']");
$email = $("input[name='email']");
$qq = $("input[name='qq']");
$idCard = $("input[name='idCard']");
$range = $("input[name='range']");
$require.each(function(){
requireFlag = Require($(this).val(),$(this).attr("msg"));
})
englishFlag = English($english.val(),$english.attr("msg"));
numberFlag = Number($number.val(),$number.attr("msg"));
chineseFlag = Chinese($chinese.val(),$chinese.attr("msg"));
phoneFlag = Phone($phone.val(),$phone.attr("msg"));
mobileFlag = Mobile($mobile.val(),$mobile.attr("msg"));
passwordFlag = Password($password.val(),$password.attr("msg"));
repeatFlag = Repeat($repeat.val(),$repeat.attr("toName"),$repeat.attr("msg"));
emailFlag = Email($email.val(),$email.attr("msg"));
qqFlag = QQ($qq.val(),$qq.attr("msg"));
idCardFlag = IdCard($idCard.val(),$idCard.attr("msg"));
rangeFlag = Range($range.val(),$range.attr("min"),$range.attr("max"),$range.attr("msg"));



*/
var validator = $(e).attr("validator");
$(".validator").each(function(){
var require = $(this).attr("require");
var temp_require = $(this).attr("temp_require");
var f = true;
if(validator){
if($(this).attr("validator") != validator){
f = false;
}
}else{
if($(this).attr("validator")){
f = false;
}
}
if(f){
var name = $(this).attr("name");
var regs = $(this).attr("reg");
regs=regs!=undefined?regs.split("_"):"";
var msgs = $(this).attr("msg");
msgs=msgs!=undefined?msgs.split("_"):"";
var msg = "*"+$(this).attr("label")+":";
if(regs==""&&msgs=="")return false;
var b = true;
var flag2 = true;
if((require && require == "no") || (temp_require && temp_require == "no")){
if(trimLeftRight($(this).val()).length == 0){
flag2 = false;
}
}
var flag3 = true;
if($(this).attr("reg")&&$(this).attr("reg").indexOf("CheckRequire") != -1){
if($(this).val() != $(".validator[name='" + name + "']").first().val()){
flag3 = false;
}
}
if(flag2 && flag3){
var date = new Date();
var timestamp = "";
if($(".validator[name='" + name + "']").size() != 1){
if($(this).attr("timestamp")){
timestamp = $(this).attr("timestamp");
}else{
timestamp = date.getTime();
timestamp = parseInt(timestamp) + $(".validator[timestamp='" + timestamp + "']").size();
$(this).attr("timestamp",timestamp);
}
}
for(var i = 0;i < regs.length;i++){
if(!eval(regs[i]+"('"+name+"','" + timestamp + "')")){
flag = false;
b = false;
$(this).parent().removeClass("info").addClass("control-group error");
if($(this).attr("toLong")){
msg = "*"+$(this).attr("label")+":" + $(this).attr("toLong");
break;
}else if($(this).attr("wrongNum")){
msg = "*"+$(this).attr("label")+":" + $(this).attr("wrongNum");
break;
}
if(msgs.length > i){
if(msg.substring(msg.indexOf(":")+1).length > 0){
msg = msg +",";
}
msg = msg + msgs[i];
}
}
}
}
if(!b){
$errorMsg.append("<span title='" + msg + "'>"+msg+"</span>");
}
}
/*
if(!b){
flag = false;
if($(this).attr("type") == "text" || $(this).attr("type") == "password" || $(this)[0].tagName == "textarea"){

var left = $(this).position().left+"px"; 
var top = $(this).position().top-25+"px";
if($(this).attr("type") == "radio" || $(this).attr("type") == "checkbox"){


if($("#"+name).length == 0){
left = $(".validator[name='"+name+"']").eq($(".validator[name='"+name+"']").size()-1).position().left+"px";
top = $(".validator[name='"+name+"']").eq($(".validator[name='"+name+"']").size()-1).position().top-25"px";
var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+$(this).attr("msg")+"</div>";
$("body").append(div);
}


$(this).parent().removeClass("info").addClass("control-group error");
}


//$(this).wrap("<div class='control-group error'></div>");

}else{
if($("#"+name).length>0){


$("#"+name).remove();
}
}
*/
});
/*
if(requireFlag && englishFlag && numberFlag && chineseFlag && phoneFlag && mobileFlag && passwordFlag && repeatFlag && emailFlag && qqFlag && idCardFlag && rangeFlag){
return true;
}
*/
if(flag){
return true;
}
// modify by ben 15-11-05
resizeErrorMsg(e,$obj);
var marginTop = 0;
var marginLeft = 0;
var top = 0;
var left = 0;
if($obj){
try {
marginTop = $obj.css("margin-top").replace("px","");
marginLeft = $obj.css("margin-left").replace("px","");
} catch (e) {
}
top = $obj.position().top - 16 - $(".error_list").height() + parseInt(marginTop) + "px";
left = $obj.position().left + parseInt(marginLeft)+"px";
// modify by ben 15-11-05
left = (left == '0px') ? '1200' : left;

}else{
try {
marginTop = $(e).css("margin-top").replace("px","");
marginLeft = $(e).css("margin-left").replace("px","");
} catch (e) {
}
top = $(e).position().top-16-$(".error_list").height()+parseInt(marginTop)+"px";
left = $(e).position().left+parseInt(marginLeft)+"px";
}
$(".error_list").css({left:left,top:top});
return false;
}


function resizeErrorMsg(e,obj){
var maxLength = 0;
for(var i = 0;i < $errorMsg.children("span").length;i++){
maxLength = maxLength > $errorMsg.children("span").eq(i).html().length ?
maxLength : $errorMsg.children("span").eq(i).html().length;
}

var scrollTop = window.scrollY || window.pageYOffset || document.documentElement.scrollTop;
var mtop = 0;
if($(e).css("margin-top") && $(e).css("margin-top").indexOf("px") != -1){
mtop = $(e).css("margin-top").replace("px","");
}
var mleft = 0;
if($(e).css("margin-left") && $(e).css("margin-left").indexOf("px") != -1){
mleft = $(e).css("margin-left").replace("px","");
}

/*var _maxWidth = $(window).width() - $(e).position().left - mleft - 60;*/
var _maxWidth = $(window).width() - $(e).position().left - mleft;
_maxWidth = _maxWidth < maxLength * 12 ? 
_maxWidth : maxLength * 12;
_maxWidth += 5;

$errorMsg.width(_maxWidth);
$(e).parent().append($(".error_list"));
$(".error_list").show();

var _maxHeight = $(e).position().top - mtop - scrollTop;
_maxHeight = _maxHeight - $(".error_list_topC").height() - $(".error_list_bottomC").height();
// modify by ben 15-11-05

if(obj){
_maxHeight = _maxHeight > $errorMsg.height()  ? 
_maxHeight : $errorMsg.height();
}else{
_maxHeight = (_maxHeight >0 && _maxHeight < $errorMsg.height())  ? 
_maxHeight : $errorMsg.height();
}
$(".error_list_topC").css("width",_maxWidth);
$(".error_list_centerC").css("width",_maxWidth);
$(".error_list_bottomC").css("width",_maxWidth);

$(".error_list").css({
height : _maxHeight,
width : _maxWidth + $(".error_list_centerL").width() + $(".error_list_centerR").width()
});
$(".error_list_center").css("height",_maxHeight);
$(".error_list_centerL").css("height",_maxHeight);
$(".error_list_centerC").css("height",_maxHeight);
$(".error_list_centerR").css("height",_maxHeight);

}


/**
 * 获取ifame验证错误提示信息列表
 * label :在每个验证提示信息前 追加的 自定义提示,为""或者不传则不追加 
**/
function getErrorMsg(label){
$(".error_list").hide();
var returnMsg = "";
if(label && label != ""){
for(var i = 0 ;i < $errorMsg.children("span").length;i++){
var _msg = $errorMsg.children("span").eq(i).html().substring(1);
_msg = "<span>*" + _msg + "</span>";
returnMsg += _msg;
}
}else{
returnMsg = $errorMsg.html();
}
return returnMsg;
}


/**
 * 将从iframe 等其他页面获取到的错误信息 追加到当前页面错误提示列表中
 * e: 点击按钮对象
 * msg: 从其他页面通过getErrorMsg()方法获取的错误提示信息
 * */
function appendErrorMsg(e,msg){
if(msg == "")return true;
$errorMsg.html(msg);
resizeErrorMsg(e);
var marginTop = 0;
var marginLeft = 0;
try {
marginTop = $(e).css("margin-top").replace("px","");
marginLeft = $(e).css("margin-left").replace("px","");
} catch (e) {
}
var top = $(e).position().top-16-$(".error_list").height()+parseInt(marginTop)+"px";
var left = $(e).position().left+parseInt(marginLeft)+"px";
$(".error_list").css({
"left" : left,
"top" : top
}).show();
return false;
}
/**
 * 将从iframe 等其他页面获取到的错误信息 追加到当前页面错误提示列表中
 * e: 点击按钮对象
 * msg: 从其他页面通过getErrorMsg()方法获取的错误提示信息
 * */
function appendErrorMsgextend(e,msg){
if(msg == "")return true;
$errorMsg.append(msg);
resizeErrorMsg(e);
var marginTop = 0;
var marginLeft = 0;
try {
marginTop = $(e).css("margin-top").replace("px","");
marginLeft = $(e).css("margin-left").replace("px","");
} catch (e) {
}
var top = $(e).position().top-16-$(".error_list").height()+parseInt(marginTop)+"px";
var left = $(e).position().left+parseInt(marginLeft)+"px";
$(".error_list").css({
"left" : left,
"top" : top
}).show();
return false;
}
$(function(){

$("html").click(function(e){
e = e || window.event;
var src = e.target || e.srcElement;
if(src.className.indexOf("validatorbtn") != -1){
return;
}
if($(".error_list").size() > 0){
$(".error_list").hide();
parent.$(".error_list").hide();
}else{
parent.$(".error_list").hide();
}
});

$(".validator").each(function(){
if($(this).attr("type") == "hidden"){
return;
}
try{
if(_validatorForSecond){//二期参数,必填*不追加到输入框后面
return;
}
}catch(err){

}
if(!$(this).attr("require") || $(this).attr("require") != "no"){
if(!$(this).attr("type") || $(this).attr("type") == "text" || $(this).attr("type") == "hidden" || $(this).attr("type") == "password" || $(this)[0].tagName == "TEXTAREA"){
var height = $(this).height();
// var margin = $(this).css("margin-top").indexOf("p") == -1 ? 0 : $(this).css("margin-top").substring(0,$(this).css("margin-top").indexOf("p"));
// var padding = $(this).css("padding-top").indexOf("p") == -1 ? 0 : $(this).css("padding-top").substring(0,$(this).css("padding-top").indexOf("p"));
if($(this).css("float") && $(this).css("float") == "left"){
$(this).after("<label style='color:red;display:inline-block;float:left'>*</label>");
// $(this).next().css("margin-top",height - $(this).next().height() + parseInt(margin) + parseInt(padding) + "px");
}
else if($(this).css("float") && $(this).css("float") == "right"){
$(this).before("<label style='color:red;display:inline-block;float:right'>*</label>");
// $(this).prev().css("margin-top",height - $(this).next().height() + parseInt(margin) + parseInt(padding) + "px");
}
else if(!$(this).css("float") || $(this).css("clear")){
$(this).after("<label style='color:red;display:inline'>*</label>");
}
}

}
});
});


function focusSelf(e){
var fHeight = $(e).attr("fHeight");
var fWidth = $(e).attr("fWidth");
if(fHeight || fWidth){
focusTextarea(e);
}
parent.$(".error_list").hide();
$(".error_list").hide();
$(".error_msg").html("");
var name = $(e).attr("name");
var regs = $(e).attr("reg").split("_");
var msgs = $(e).attr("msg").split("_");
var id;
if(name.indexOf(".") != -1){
id = name.replace(/\./g,"_");
}else{
id = name;
}
id = id+"_";
var msg = "";
var b = true;
var date = new Date();
var timestamp = "";
if($(".validator[name='" + name + "']").size() != 1){
timestamp = date.getTime();
$(e).attr("timestamp",timestamp);
}
for(var i = 0;i < regs.length;i++){
if(!eval(regs[i]+"('"+name+"','" + timestamp + "')")){
flag = false;
b = false;
if($(e).attr("toLong")){
msg = $(e).attr("toLong");
break;
}else if($(e).attr("wrongNum")){
msg = $(e).attr("wrongNum");
break;
}
if(regs[i] == "Repeat" && $(e).val().replace(/\s*/g,"") == ""){
msg = msg + "再次输入";
}else if(msgs.length > i){
if(msg.length > 0){
msg = msg +",";
}
msg = msg + msgs[i];
}
}
}
if(!b){
var left = $(e).position().left; 
var top = $(e).position().top-33;
if(!$(e).attr("type") || $(e).attr("type") == "text" || $(e).attr("type") == "hidden" || $(e).attr("type") == "password" || $(e)[0].tagName == "TEXTAREA"){
//var span = "<span>"+msg+"</span>";
var errorCenter = "<div class='center'><span>"+msg+"</span></div>";
var errorLeft = "<div class='left'></div>";
var errorRight = "<div class='right'></div>";
if($(e).attr("parentIframe")){
var parentIframe = $(e).attr("parentIframe");
left += parent.$("#" + parentIframe).position().left;
top += parent.$("#" + parentIframe).position().top;
var div = "<div class='errors' style='left:"+left+"px;top:"+top+"px' name='"+id+"'>"+errorLeft+errorCenter+errorRight+"</div>";
if($(e).attr("reg").indexOf("SelectRequire") == -1){
parent.$("#" + parentIframe).parent().append(div);
}
var width = parent.$(".errors .left").width() + parent.$(".errors .center").width() + parent.$(".errors .right").width()+6;
parent.$(".errors").css("width",width);
$(e).parent().removeClass("error").addClass("control-group info");
}else{
var div = "<div class='errors' style='left:"+left+"px;top:"+top+"px' name='"+id+"'>"+errorLeft+errorCenter+errorRight+"</div>";
//var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+msg+"</div>";
//$("body").append(div);
if($(e).attr("reg").indexOf("SelectRequire") == -1){
$(e).parent().append(div);
}
var width = $(".errors .left").width()+$(".errors .center").width()+$(".errors .right").width()+6;
$(".errors").css("width",width);
$(e).parent().removeClass("error").addClass("control-group info");
}
}
}
}


//审批页面
function focusSelf2(e){
var fHeight = $(e).attr("fHeight");
var fWidth = $(e).attr("fWidth");
if(fHeight || fWidth){
focusTextarea(e);
}
//$(e).style.background = "red";
/*if(!$(e).attr("type") || $(e).attr("type") == "text" || $(e).attr("type") == "hidden" || $(e).attr("type") == "password" || $(e)[0].tagName == "TEXTAREA"){
//var span = "<span>"+msg+"</span>";
var errorLeft = "<div class='left'></div>";
var errorRight = "<div class='right'></div>";
if($(e).attr("parentIframe")){
var parentIframe = $(e).attr("parentIframe");
left += parent.$("#" + parentIframe).position().left;
top += parent.$("#" + parentIframe).position().top;
var div = "<div class='errors' style='left:"+left+"px;top:"+top+"px' name='"+id+"'>"+errorLeft+errorCenter+errorRight+"</div>";
if($(e).attr("reg").indexOf("SelectRequire") == -1){
parent.$("#" + parentIframe).parent().append(div);
}
var width = parent.$(".errors .left").width() + parent.$(".errors .center").width() + parent.$(".errors .right").width()+6;
parent.$(".errors").css("width",width);
$(e).parent().removeClass("error").addClass("control-group info");
}else{
//var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+msg+"</div>";
//$("body").append(div);
if($(e).attr("reg").indexOf("SelectRequire") == -1){
$(e).parent().append(div);
}
var width = $(".errors .left").width()+$(".errors .center").width()+$(".errors .right").width()+6;
$(".errors").css("width",width);
$(e).parent().removeClass("error").addClass("control-group info");
}
}*/
}


function blurSelf(e){
var bHeight = $(e).attr("bHeight");
var bWidth = $(e).attr("bWidth");
if(bHeight || bWidth){
blurTextarea(e);
}
$(e).val(trimLeftRight($(e).val()));
var name = $(e).attr("name");
var regs = $(e).attr("reg").split("_");
var b = true;
var id;
if(name.indexOf(".") != -1){
id = name.replace(/\./g,"_");
}else{
id = name;
}
id = id+"_";
//$("#"+id).remove();
if($(e).attr("parentIframe")){
parent.$("#" + $(e).attr("parentIframe")).siblings("div[name='"+id+"']").remove();
}else{
$(e).siblings("div[name='"+id+"']").remove();
}
var flag = true;
if($(e).attr("require") && $(e).attr("require") == "no"){
if(trimLeftRight($(e).val()).length == 0){
flag = false;
}
}
if(flag){
var date = new Date();
var timestamp = "";
if($(".validator[name='" + name + "']").size() != 1){
timestamp = date.getTime();
$(e).attr("timestamp",timestamp);
}
for(var i = 0;i < regs.length;i++){
if(!eval(regs[i]+"('"+name+"','" + timestamp + "')")){
b = false;
}
}
}
if(!b){
$(e).parent().removeClass("info").addClass("control-group error");
}else{
$(e).parent().removeClass("info error");
}
if($(e)[0].tagName.toLowerCase() != "select"){
try {
$(e).change();
} catch (e) {
}
}
}


//审批页面
function blurSelf2(e){
var bHeight = $(e).attr("bHeight");
var bWidth = $(e).attr("bWidth");
if(bHeight || bWidth){
blurTextarea(e);
}
$(e).val(trimLeftRight($(e).val()));
}


function focusTextarea(e){
/*if($(e).parent("div.wrap").length == 0){
$(e).wrap("<div class='wrap' style='width:100%;position:relative'></div>");
}*/
//$(e).before("<div style='width:100%;visibility:hidden'><div>");
var left = $(e).position().left;
var top = $(e).position().top;
var width = $(e).width();
var height = $(e).height();
var fWidth = $(e).attr("fWidth");
if(fWidth && fWidth.indexOf("%") != -1){
fWidth = $(e).parent().width()*fWidth;
}
var fHeight = $(e).attr("fHeight");
var direction = $(e).attr("direction");
if(!direction){
direction = "lb";
}
var param = ({
"position" : "absolute",
"z-index" : "97"
});
if(!fWidth || fWidth < width){
fWidth = width;
}
param.width = fWidth;
if(!fHeight || fHeight < height){
fHeight = height;
}
param.height = fHeight;
switch (direction) {
case 'rb':
param.top = top + "px";
param.left = left + "px";
break;
case 'rt':
param.top = top - (fHeight - height) + "px";
param.left = left + "px";
break;
case 'lb':
param.left = left - (fWidth - width) + "px";
param.top = top + "px";
break;
case 'lt':
param.left = left - (fWidth - width) + "px",
param.top = top - (fHeight - height) + "px";
break;


default:
break;
}
$(e).css(param);
}


function blurTextarea(e){
var bWidth = $(e).attr("bWidth");
var bHeight = $(e).attr("bHeight");
$(e).css({
"position" : "static",
"width" : bWidth,
"height" : bHeight
});
/*$(e).unwrap();*/
}


function trimLeftRight(str){
try {
var newStr = "";
newStr = str.replace(/(^\s*)/g, "").replace(/(\s*$)/g, "");
return newStr;
} catch (e) {
return str;
}

}


function Require(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
try{
if(validator.Require.test($obj.val().replace(/(\s*)/g,""))){
if($obj.attr("type") && $obj.attr("type") != "file" && !$obj.attr("nolimit") && $obj.attr("reg").trim() == "Require"){
if($obj[0].tagName == "INPUT"){
if($obj.val().length > 30){
$obj.attr("toLong","请输入30个以内文字!");
return false;
}
}else{
if($obj.val().length > 500){
$obj.attr("toLong","请输入500个以内文字!");
return false;
}
}
}
return true;
}
}catch(e){
//alert(".validator[name='"+name+"']" + param+",找不到此对象.")
}
if($obj.attr("toLong")){
$obj.removeAttr("toLong");
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function English(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.English.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Number(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Number.test($obj.val())){
if($obj.val() > 2140000000 || $obj.val() < -2140000000){
$obj.attr("wrongNum","您输入的是非法数字!");
return false;
}
if($obj.attr("wrongNum")){
$obj.removeAttr("wrongNum");
}
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Chinese(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Chinese.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Phone(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Phone.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Mobile(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Mobile.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Password(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Password.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Repeat(name){
var $obj = $(".validator[name='"+name+"']");
var toName = $obj.attr("toName");
var toValue = document.getElementsByName(toName)[0].value;
if($obj.val() == toValue){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Email(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Email.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function QQ(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.QQ.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function IdCard(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.IdCard.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Range(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
var min = $obj.attr("min");
var max = $obj.attr("max");
if($obj.val() != "" && $obj.val()-min>=0 && max-$obj.val()>=0){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Limit(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
var minLen = $obj.attr("minLen");
var maxLen = $obj.attr("maxLen");
var _length = $obj.val().length > $obj.html().length ? $obj.val().length : $obj.html().length;
if(_length >= minLen && _length <= maxLen){
return true;
}
return false;
}


function CheckRequire(name){
var $obj = $(".validator[name='"+name+"']");
var require = $obj.attr("require");
var temp_require = $obj.attr("temp_require");
if((require && require == "no") || (temp_require && temp_require == "no")){
return true;
}
for(var i = 0;i<$obj.size();i++){
if($obj[i].checked){
//$obj.eq(i).siblings(".validator[name='"+name+"']")
return true;
}
}
return false;


}
function Compare(name){
var $obj = $(".validator[name='"+name+"']");
var compare = $obj.attr("compare");
var compareTo = $obj.attr("compareTo");
var $compareTo = $(".validator[compare='"+compareTo+"']");
compareVal = $obj.val();
compareToVal = $compareTo.val();
if(compareVal == ""){
return false;
}
if(compareToVal == ""){
compareToVal = 0;
}
if(compareVal.indexOf("-") || compareToVal.indexOf("-") ){
compareVal = compareVal.replace(/\-/g,"").replace(/\s*/g,"").replace(/\:/g,"");
compareToVal = compareToVal.replace(/\-/g,"").replace(/\s*/g,"").replace(/\:/g,"");
if(compareVal.length == compareToVal.length){
//doNothing;
}else if(compareVal.length > compareToVal.length){
var length = compareVal.length - compareToVal.length;
for(var i = 0;i < length;i++){
compareToVal = compareToVal + "0";
}
}else{
var length = compareToVal.length - compareVal.length;
for(var i = 0;i < length;i++){
compareVal = compareVal + "0";
}
}
}
if(compare == "maxVal"){
if(compareVal - compareToVal >= 0){
var id = $compareTo.attr("name");
$compareTo.parent().removeClass("info error");
if($("#"+id).size()>0){
$("#"+id).remove();
}
return true;
}
}else{
if(compareVal - compareToVal < 0){
var id = $compareTo.attr("name");
$compareTo.parent().removeClass("info error");
if($("#"+id).size()>0){
$("#"+id).remove();
}
return true;
}
}
return false;



}


function Float(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
var num = $obj.attr("num");
var immutable = $obj.attr("immutable");
if(validator.Float.test($obj.val())){
if(num){
if($obj.val().indexOf(".") != -1){
var str = $obj.val().substring($obj.val().indexOf(".")+1);
if(immutable && immutable == "ture"){
if(str.length != num){
return false;
}
}
if(str.length > num){
return false;
}
}
}
if($obj.val() > 99999999999 || $obj.val() < -21400000000){
$obj.attr("wrongNum","非法数字!");
return false;
}
if($obj.attr("wrongNum")){
$obj.removeAttr("wrongNum");
}
return true;
}
return false;
}


function SelectRequire(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if($obj.val() == ""){
return false;
}
return true;
}
function removeRedBorder(e){
if($(e).attr("class").indexOf("validator") != -1){
blurSelf(e);
}
}


function titleLimit(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(!validator.titleLimit.test($obj.val())){
return false;
}
return true;
}


/*
function English(data,msg){
if(validator.English.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Number(data,msg){
if(validator.Number.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Chinese(data,msg){
if(validator.Chinese.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Phone(data,msg){
if(validator.Phone.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Mobile(data,msg){
if(validator.Mobile.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Password(data,msg){
if(validator.Password.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Repeat(data,toName,msg){
var toValue = document.getElementsByName(toName)[0].value;
if(data == toValue){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Email(data,msg){
if(validator.Email.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function QQ(data,msg){
if(validator.QQ.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function IdCard(data,msg){
if(validator.IdCard.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Range(data,min,max,msg){
if(data-min>=0 && max-data>=0){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
*/
function checkFloat(obj){

var $obj = $(obj);
var num = $obj.attr("num");
var immutable = $obj.attr("immutable");
if(validator.Float.test($obj.val())){
if(num){
if($obj.val().indexOf(".") != -1){
var str = $obj.val().substring($obj.val().indexOf(".")+1);
if(immutable && immutable == "ture"){
if(str.length != num){
appendErrorMsgextend(obj,$(obj).attr("msg"));
return false;
}
}
if(str.length > num){
appendErrorMsgextend(obj,$(obj).attr("msg"));
return false;
}
}
}
if($obj.val() > 99999999999 || $obj.val() < -21400000000){
$obj.attr("wrongNum","非法数字!");
appendErrorMsgextend(obj,$(obj).attr("msg"));
return false;
}
if($obj.attr("wrongNum")){
$obj.removeAttr("wrongNum");
}
return true;
}
return false;
}
//对行中对象绑定事件
function reblurbind(clqdid){
$('#'+clqdid).find(".validator").each(function(){
$(this).blur(function(){
blurSelf(this);
});
})
}var validator = {
Require : /.+/,
English : /^[A-Za-z]+$/,
Number : /^-?\d+$/,
Chinese : /^[\u0391-\uFFE5]+$/,
Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,
Mobile : /^((\+86)|(86))?\d{11}$/,
Password : /^[\w\W]{6,20}$/,
Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
QQ : /^[1-9]\d{4,12}$/,
IdCard : /^\d{15}(\d{2}[x|X0-9])?$/,
Float : /^-?(((0)(\.\d+)?)|([1-9](\d+)?)(\.\d+)?)$/,
titleLimit : /(?!.*关于|.*有关|.*相关)^.*$/
};


var $errorMsg;
$(function(){
//关闭form表单中input自动完成功能
$("form").attr("autocomplete","off");
  //  var width = $("body").width()+"px";
// var height = $("body").height()+"px";
// var errorMsg = "<div class='error_msg' style='width:"+width+";height:"+height+"'></div>";
var errorMsg = "<div class='error_msg'></div>";
// var positionTop = $(e).position().top+3+"px";
// var positionLeft = $(e).position().left+"px";
var divTop = "<div class='error_list_top'><div class='error_list_topL'></div><div class='error_list_topC'></div><div class='error_list_topR'></div></div>";
var divCenter = "<div class='error_list_center'><div class='error_list_centerL'></div><div class='error_list_centerC'></div><div class='error_list_centerR'></div></div>";
var divBottom = "<div class='error_list_bottom'><div class='error_list_bottomL'></div><div class='error_list_bottomC'></div><div class='error_list_bottomR'></div></div>";
var div = "<div class='error_list'>"+divTop+divCenter+divBottom+"</div>";
$("body").append(div);
$(".error_list_centerC").append(errorMsg);
$errorMsg = $(".error_msg");


$(".validator").each(function(){
$(this).blur(function(){
blurSelf(this);
});
$(this).focus(function(){
focusSelf(this);

/*
if(!b){
flag = false;
var left = $(this).position().left+$(this).width()+10+"px"; 
var top = $(this).position().top+"px";

if($(this).attr("type") == "radio" || $(this).attr("type") == "checkbox"){
if($("#"+name).length == 0){
left = $(".validator[name='"+name+"']").eq($(".validator[name='"+name+"']").size()-1).position().left+$(this).width()+"px";
top = $(".validator[name='"+name+"']").eq($(".validator[name='"+name+"']").size()-1).position().top+"px";
var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+$(this).attr("msg")+"</div>";
$("body").append(div);
}
}else{
var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+$(this).attr("msg")+"</div>";
$("body").append(div);
}
$(this).parent().addClass("control-group error");

if($(this).attr("type") == "text" || $(this).attr("type") == "password" || $(this)[0].tagName == "textarea"){
var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+$(this).attr("msg")+"</div>";
$("body").append(div);
$(this).parent().removeClass("error").addClass("control-group info");
}
}else{
if($("#"+name).length>0){


$("#"+name).remove();
}
}*/

});
});
});
//$obj 自定义提示菜单定位、如果没有则默认点击事件对象的位置
function Validator(e,$obj){
$(e).addClass("validatorbtn");
$errorMsg.html("");
// var require,english,number,chinese,phone,mobile,password,repeat,email,qq,idCard,range;
// requireFlag,englishFlag,numberFlag,chineseFlag,phoneFlag,mobileFlag,passwordFlag,repeatFlag,emailFlag,qqFlag,idCardFlag,rangeFlag;  
var flag = true;




/*
$require = $("input[name='require']");
$english = $("input[name='english']");
$number = $("input[name='number']");
$chinese = $("input[name='chinese']");
$phone = $("input[name='phone']");
$mobile = $("input[name='mobile']");
$password = $("input[name='password']");
$repeat = $("input[name='repeat']");
$email = $("input[name='email']");
$qq = $("input[name='qq']");
$idCard = $("input[name='idCard']");
$range = $("input[name='range']");
$require.each(function(){
requireFlag = Require($(this).val(),$(this).attr("msg"));
})
englishFlag = English($english.val(),$english.attr("msg"));
numberFlag = Number($number.val(),$number.attr("msg"));
chineseFlag = Chinese($chinese.val(),$chinese.attr("msg"));
phoneFlag = Phone($phone.val(),$phone.attr("msg"));
mobileFlag = Mobile($mobile.val(),$mobile.attr("msg"));
passwordFlag = Password($password.val(),$password.attr("msg"));
repeatFlag = Repeat($repeat.val(),$repeat.attr("toName"),$repeat.attr("msg"));
emailFlag = Email($email.val(),$email.attr("msg"));
qqFlag = QQ($qq.val(),$qq.attr("msg"));
idCardFlag = IdCard($idCard.val(),$idCard.attr("msg"));
rangeFlag = Range($range.val(),$range.attr("min"),$range.attr("max"),$range.attr("msg"));



*/
var validator = $(e).attr("validator");
$(".validator").each(function(){
var require = $(this).attr("require");
var temp_require = $(this).attr("temp_require");
var f = true;
if(validator){
if($(this).attr("validator") != validator){
f = false;
}
}else{
if($(this).attr("validator")){
f = false;
}
}
if(f){
var name = $(this).attr("name");
var regs = $(this).attr("reg");
regs=regs!=undefined?regs.split("_"):"";
var msgs = $(this).attr("msg");
msgs=msgs!=undefined?msgs.split("_"):"";
var msg = "*"+$(this).attr("label")+":";
if(regs==""&&msgs=="")return false;
var b = true;
var flag2 = true;
if((require && require == "no") || (temp_require && temp_require == "no")){
if(trimLeftRight($(this).val()).length == 0){
flag2 = false;
}
}
var flag3 = true;
if($(this).attr("reg")&&$(this).attr("reg").indexOf("CheckRequire") != -1){
if($(this).val() != $(".validator[name='" + name + "']").first().val()){
flag3 = false;
}
}
if(flag2 && flag3){
var date = new Date();
var timestamp = "";
if($(".validator[name='" + name + "']").size() != 1){
if($(this).attr("timestamp")){
timestamp = $(this).attr("timestamp");
}else{
timestamp = date.getTime();
timestamp = parseInt(timestamp) + $(".validator[timestamp='" + timestamp + "']").size();
$(this).attr("timestamp",timestamp);
}
}
for(var i = 0;i < regs.length;i++){
if(!eval(regs[i]+"('"+name+"','" + timestamp + "')")){
flag = false;
b = false;
$(this).parent().removeClass("info").addClass("control-group error");
if($(this).attr("toLong")){
msg = "*"+$(this).attr("label")+":" + $(this).attr("toLong");
break;
}else if($(this).attr("wrongNum")){
msg = "*"+$(this).attr("label")+":" + $(this).attr("wrongNum");
break;
}
if(msgs.length > i){
if(msg.substring(msg.indexOf(":")+1).length > 0){
msg = msg +",";
}
msg = msg + msgs[i];
}
}
}
}
if(!b){
$errorMsg.append("<span title='" + msg + "'>"+msg+"</span>");
}
}
/*
if(!b){
flag = false;
if($(this).attr("type") == "text" || $(this).attr("type") == "password" || $(this)[0].tagName == "textarea"){

var left = $(this).position().left+"px"; 
var top = $(this).position().top-25+"px";
if($(this).attr("type") == "radio" || $(this).attr("type") == "checkbox"){


if($("#"+name).length == 0){
left = $(".validator[name='"+name+"']").eq($(".validator[name='"+name+"']").size()-1).position().left+"px";
top = $(".validator[name='"+name+"']").eq($(".validator[name='"+name+"']").size()-1).position().top-25"px";
var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+$(this).attr("msg")+"</div>";
$("body").append(div);
}


$(this).parent().removeClass("info").addClass("control-group error");
}


//$(this).wrap("<div class='control-group error'></div>");

}else{
if($("#"+name).length>0){


$("#"+name).remove();
}
}
*/
});
/*
if(requireFlag && englishFlag && numberFlag && chineseFlag && phoneFlag && mobileFlag && passwordFlag && repeatFlag && emailFlag && qqFlag && idCardFlag && rangeFlag){
return true;
}
*/
if(flag){
return true;
}
// modify by ben 15-11-05
resizeErrorMsg(e,$obj);
var marginTop = 0;
var marginLeft = 0;
var top = 0;
var left = 0;
if($obj){
try {
marginTop = $obj.css("margin-top").replace("px","");
marginLeft = $obj.css("margin-left").replace("px","");
} catch (e) {
}
top = $obj.position().top - 16 - $(".error_list").height() + parseInt(marginTop) + "px";
left = $obj.position().left + parseInt(marginLeft)+"px";
// modify by ben 15-11-05
left = (left == '0px') ? '1200' : left;

}else{
try {
marginTop = $(e).css("margin-top").replace("px","");
marginLeft = $(e).css("margin-left").replace("px","");
} catch (e) {
}
top = $(e).position().top-16-$(".error_list").height()+parseInt(marginTop)+"px";
left = $(e).position().left+parseInt(marginLeft)+"px";
}
$(".error_list").css({left:left,top:top});
return false;
}


function resizeErrorMsg(e,obj){
var maxLength = 0;
for(var i = 0;i < $errorMsg.children("span").length;i++){
maxLength = maxLength > $errorMsg.children("span").eq(i).html().length ?
maxLength : $errorMsg.children("span").eq(i).html().length;
}

var scrollTop = window.scrollY || window.pageYOffset || document.documentElement.scrollTop;
var mtop = 0;
if($(e).css("margin-top") && $(e).css("margin-top").indexOf("px") != -1){
mtop = $(e).css("margin-top").replace("px","");
}
var mleft = 0;
if($(e).css("margin-left") && $(e).css("margin-left").indexOf("px") != -1){
mleft = $(e).css("margin-left").replace("px","");
}

/*var _maxWidth = $(window).width() - $(e).position().left - mleft - 60;*/
var _maxWidth = $(window).width() - $(e).position().left - mleft;
_maxWidth = _maxWidth < maxLength * 12 ? 
_maxWidth : maxLength * 12;
_maxWidth += 5;

$errorMsg.width(_maxWidth);
$(e).parent().append($(".error_list"));
$(".error_list").show();

var _maxHeight = $(e).position().top - mtop - scrollTop;
_maxHeight = _maxHeight - $(".error_list_topC").height() - $(".error_list_bottomC").height();
// modify by ben 15-11-05

if(obj){
_maxHeight = _maxHeight > $errorMsg.height()  ? 
_maxHeight : $errorMsg.height();
}else{
_maxHeight = (_maxHeight >0 && _maxHeight < $errorMsg.height())  ? 
_maxHeight : $errorMsg.height();
}
$(".error_list_topC").css("width",_maxWidth);
$(".error_list_centerC").css("width",_maxWidth);
$(".error_list_bottomC").css("width",_maxWidth);

$(".error_list").css({
height : _maxHeight,
width : _maxWidth + $(".error_list_centerL").width() + $(".error_list_centerR").width()
});
$(".error_list_center").css("height",_maxHeight);
$(".error_list_centerL").css("height",_maxHeight);
$(".error_list_centerC").css("height",_maxHeight);
$(".error_list_centerR").css("height",_maxHeight);

}


/**
 * 获取ifame验证错误提示信息列表
 * label :在每个验证提示信息前 追加的 自定义提示,为""或者不传则不追加 
**/
function getErrorMsg(label){
$(".error_list").hide();
var returnMsg = "";
if(label && label != ""){
for(var i = 0 ;i < $errorMsg.children("span").length;i++){
var _msg = $errorMsg.children("span").eq(i).html().substring(1);
_msg = "<span>*" + _msg + "</span>";
returnMsg += _msg;
}
}else{
returnMsg = $errorMsg.html();
}
return returnMsg;
}


/**
 * 将从iframe 等其他页面获取到的错误信息 追加到当前页面错误提示列表中
 * e: 点击按钮对象
 * msg: 从其他页面通过getErrorMsg()方法获取的错误提示信息
 * */
function appendErrorMsg(e,msg){
if(msg == "")return true;
$errorMsg.html(msg);
resizeErrorMsg(e);
var marginTop = 0;
var marginLeft = 0;
try {
marginTop = $(e).css("margin-top").replace("px","");
marginLeft = $(e).css("margin-left").replace("px","");
} catch (e) {
}
var top = $(e).position().top-16-$(".error_list").height()+parseInt(marginTop)+"px";
var left = $(e).position().left+parseInt(marginLeft)+"px";
$(".error_list").css({
"left" : left,
"top" : top
}).show();
return false;
}
/**
 * 将从iframe 等其他页面获取到的错误信息 追加到当前页面错误提示列表中
 * e: 点击按钮对象
 * msg: 从其他页面通过getErrorMsg()方法获取的错误提示信息
 * */
function appendErrorMsgextend(e,msg){
if(msg == "")return true;
$errorMsg.append(msg);
resizeErrorMsg(e);
var marginTop = 0;
var marginLeft = 0;
try {
marginTop = $(e).css("margin-top").replace("px","");
marginLeft = $(e).css("margin-left").replace("px","");
} catch (e) {
}
var top = $(e).position().top-16-$(".error_list").height()+parseInt(marginTop)+"px";
var left = $(e).position().left+parseInt(marginLeft)+"px";
$(".error_list").css({
"left" : left,
"top" : top
}).show();
return false;
}
$(function(){

$("html").click(function(e){
e = e || window.event;
var src = e.target || e.srcElement;
if(src.className.indexOf("validatorbtn") != -1){
return;
}
if($(".error_list").size() > 0){
$(".error_list").hide();
parent.$(".error_list").hide();
}else{
parent.$(".error_list").hide();
}
});

$(".validator").each(function(){
if($(this).attr("type") == "hidden"){
return;
}
try{
if(_validatorForSecond){//二期参数,必填*不追加到输入框后面
return;
}
}catch(err){

}
if(!$(this).attr("require") || $(this).attr("require") != "no"){
if(!$(this).attr("type") || $(this).attr("type") == "text" || $(this).attr("type") == "hidden" || $(this).attr("type") == "password" || $(this)[0].tagName == "TEXTAREA"){
var height = $(this).height();
// var margin = $(this).css("margin-top").indexOf("p") == -1 ? 0 : $(this).css("margin-top").substring(0,$(this).css("margin-top").indexOf("p"));
// var padding = $(this).css("padding-top").indexOf("p") == -1 ? 0 : $(this).css("padding-top").substring(0,$(this).css("padding-top").indexOf("p"));
if($(this).css("float") && $(this).css("float") == "left"){
$(this).after("<label style='color:red;display:inline-block;float:left'>*</label>");
// $(this).next().css("margin-top",height - $(this).next().height() + parseInt(margin) + parseInt(padding) + "px");
}
else if($(this).css("float") && $(this).css("float") == "right"){
$(this).before("<label style='color:red;display:inline-block;float:right'>*</label>");
// $(this).prev().css("margin-top",height - $(this).next().height() + parseInt(margin) + parseInt(padding) + "px");
}
else if(!$(this).css("float") || $(this).css("clear")){
$(this).after("<label style='color:red;display:inline'>*</label>");
}
}

}
});
});


function focusSelf(e){
var fHeight = $(e).attr("fHeight");
var fWidth = $(e).attr("fWidth");
if(fHeight || fWidth){
focusTextarea(e);
}
parent.$(".error_list").hide();
$(".error_list").hide();
$(".error_msg").html("");
var name = $(e).attr("name");
var regs = $(e).attr("reg").split("_");
var msgs = $(e).attr("msg").split("_");
var id;
if(name.indexOf(".") != -1){
id = name.replace(/\./g,"_");
}else{
id = name;
}
id = id+"_";
var msg = "";
var b = true;
var date = new Date();
var timestamp = "";
if($(".validator[name='" + name + "']").size() != 1){
timestamp = date.getTime();
$(e).attr("timestamp",timestamp);
}
for(var i = 0;i < regs.length;i++){
if(!eval(regs[i]+"('"+name+"','" + timestamp + "')")){
flag = false;
b = false;
if($(e).attr("toLong")){
msg = $(e).attr("toLong");
break;
}else if($(e).attr("wrongNum")){
msg = $(e).attr("wrongNum");
break;
}
if(regs[i] == "Repeat" && $(e).val().replace(/\s*/g,"") == ""){
msg = msg + "再次输入";
}else if(msgs.length > i){
if(msg.length > 0){
msg = msg +",";
}
msg = msg + msgs[i];
}
}
}
if(!b){
var left = $(e).position().left; 
var top = $(e).position().top-33;
if(!$(e).attr("type") || $(e).attr("type") == "text" || $(e).attr("type") == "hidden" || $(e).attr("type") == "password" || $(e)[0].tagName == "TEXTAREA"){
//var span = "<span>"+msg+"</span>";
var errorCenter = "<div class='center'><span>"+msg+"</span></div>";
var errorLeft = "<div class='left'></div>";
var errorRight = "<div class='right'></div>";
if($(e).attr("parentIframe")){
var parentIframe = $(e).attr("parentIframe");
left += parent.$("#" + parentIframe).position().left;
top += parent.$("#" + parentIframe).position().top;
var div = "<div class='errors' style='left:"+left+"px;top:"+top+"px' name='"+id+"'>"+errorLeft+errorCenter+errorRight+"</div>";
if($(e).attr("reg").indexOf("SelectRequire") == -1){
parent.$("#" + parentIframe).parent().append(div);
}
var width = parent.$(".errors .left").width() + parent.$(".errors .center").width() + parent.$(".errors .right").width()+6;
parent.$(".errors").css("width",width);
$(e).parent().removeClass("error").addClass("control-group info");
}else{
var div = "<div class='errors' style='left:"+left+"px;top:"+top+"px' name='"+id+"'>"+errorLeft+errorCenter+errorRight+"</div>";
//var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+msg+"</div>";
//$("body").append(div);
if($(e).attr("reg").indexOf("SelectRequire") == -1){
$(e).parent().append(div);
}
var width = $(".errors .left").width()+$(".errors .center").width()+$(".errors .right").width()+6;
$(".errors").css("width",width);
$(e).parent().removeClass("error").addClass("control-group info");
}
}
}
}


//审批页面
function focusSelf2(e){
var fHeight = $(e).attr("fHeight");
var fWidth = $(e).attr("fWidth");
if(fHeight || fWidth){
focusTextarea(e);
}
//$(e).style.background = "red";
/*if(!$(e).attr("type") || $(e).attr("type") == "text" || $(e).attr("type") == "hidden" || $(e).attr("type") == "password" || $(e)[0].tagName == "TEXTAREA"){
//var span = "<span>"+msg+"</span>";
var errorLeft = "<div class='left'></div>";
var errorRight = "<div class='right'></div>";
if($(e).attr("parentIframe")){
var parentIframe = $(e).attr("parentIframe");
left += parent.$("#" + parentIframe).position().left;
top += parent.$("#" + parentIframe).position().top;
var div = "<div class='errors' style='left:"+left+"px;top:"+top+"px' name='"+id+"'>"+errorLeft+errorCenter+errorRight+"</div>";
if($(e).attr("reg").indexOf("SelectRequire") == -1){
parent.$("#" + parentIframe).parent().append(div);
}
var width = parent.$(".errors .left").width() + parent.$(".errors .center").width() + parent.$(".errors .right").width()+6;
parent.$(".errors").css("width",width);
$(e).parent().removeClass("error").addClass("control-group info");
}else{
//var div = "<div class='errors' style='left:"+left+";top:"+top+"' id='"+name+"'>"+msg+"</div>";
//$("body").append(div);
if($(e).attr("reg").indexOf("SelectRequire") == -1){
$(e).parent().append(div);
}
var width = $(".errors .left").width()+$(".errors .center").width()+$(".errors .right").width()+6;
$(".errors").css("width",width);
$(e).parent().removeClass("error").addClass("control-group info");
}
}*/
}


function blurSelf(e){
var bHeight = $(e).attr("bHeight");
var bWidth = $(e).attr("bWidth");
if(bHeight || bWidth){
blurTextarea(e);
}
$(e).val(trimLeftRight($(e).val()));
var name = $(e).attr("name");
var regs = $(e).attr("reg").split("_");
var b = true;
var id;
if(name.indexOf(".") != -1){
id = name.replace(/\./g,"_");
}else{
id = name;
}
id = id+"_";
//$("#"+id).remove();
if($(e).attr("parentIframe")){
parent.$("#" + $(e).attr("parentIframe")).siblings("div[name='"+id+"']").remove();
}else{
$(e).siblings("div[name='"+id+"']").remove();
}
var flag = true;
if($(e).attr("require") && $(e).attr("require") == "no"){
if(trimLeftRight($(e).val()).length == 0){
flag = false;
}
}
if(flag){
var date = new Date();
var timestamp = "";
if($(".validator[name='" + name + "']").size() != 1){
timestamp = date.getTime();
$(e).attr("timestamp",timestamp);
}
for(var i = 0;i < regs.length;i++){
if(!eval(regs[i]+"('"+name+"','" + timestamp + "')")){
b = false;
}
}
}
if(!b){
$(e).parent().removeClass("info").addClass("control-group error");
}else{
$(e).parent().removeClass("info error");
}
if($(e)[0].tagName.toLowerCase() != "select"){
try {
$(e).change();
} catch (e) {
}
}
}


//审批页面
function blurSelf2(e){
var bHeight = $(e).attr("bHeight");
var bWidth = $(e).attr("bWidth");
if(bHeight || bWidth){
blurTextarea(e);
}
$(e).val(trimLeftRight($(e).val()));
}


function focusTextarea(e){
/*if($(e).parent("div.wrap").length == 0){
$(e).wrap("<div class='wrap' style='width:100%;position:relative'></div>");
}*/
//$(e).before("<div style='width:100%;visibility:hidden'><div>");
var left = $(e).position().left;
var top = $(e).position().top;
var width = $(e).width();
var height = $(e).height();
var fWidth = $(e).attr("fWidth");
if(fWidth && fWidth.indexOf("%") != -1){
fWidth = $(e).parent().width()*fWidth;
}
var fHeight = $(e).attr("fHeight");
var direction = $(e).attr("direction");
if(!direction){
direction = "lb";
}
var param = ({
"position" : "absolute",
"z-index" : "97"
});
if(!fWidth || fWidth < width){
fWidth = width;
}
param.width = fWidth;
if(!fHeight || fHeight < height){
fHeight = height;
}
param.height = fHeight;
switch (direction) {
case 'rb':
param.top = top + "px";
param.left = left + "px";
break;
case 'rt':
param.top = top - (fHeight - height) + "px";
param.left = left + "px";
break;
case 'lb':
param.left = left - (fWidth - width) + "px";
param.top = top + "px";
break;
case 'lt':
param.left = left - (fWidth - width) + "px",
param.top = top - (fHeight - height) + "px";
break;


default:
break;
}
$(e).css(param);
}


function blurTextarea(e){
var bWidth = $(e).attr("bWidth");
var bHeight = $(e).attr("bHeight");
$(e).css({
"position" : "static",
"width" : bWidth,
"height" : bHeight
});
/*$(e).unwrap();*/
}


function trimLeftRight(str){
try {
var newStr = "";
newStr = str.replace(/(^\s*)/g, "").replace(/(\s*$)/g, "");
return newStr;
} catch (e) {
return str;
}

}


function Require(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
try{
if(validator.Require.test($obj.val().replace(/(\s*)/g,""))){
if($obj.attr("type") && $obj.attr("type") != "file" && !$obj.attr("nolimit") && $obj.attr("reg").trim() == "Require"){
if($obj[0].tagName == "INPUT"){
if($obj.val().length > 30){
$obj.attr("toLong","请输入30个以内文字!");
return false;
}
}else{
if($obj.val().length > 500){
$obj.attr("toLong","请输入500个以内文字!");
return false;
}
}
}
return true;
}
}catch(e){
//alert(".validator[name='"+name+"']" + param+",找不到此对象.")
}
if($obj.attr("toLong")){
$obj.removeAttr("toLong");
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function English(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.English.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Number(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Number.test($obj.val())){
if($obj.val() > 2140000000 || $obj.val() < -2140000000){
$obj.attr("wrongNum","您输入的是非法数字!");
return false;
}
if($obj.attr("wrongNum")){
$obj.removeAttr("wrongNum");
}
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Chinese(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Chinese.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Phone(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Phone.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Mobile(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Mobile.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Password(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Password.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Repeat(name){
var $obj = $(".validator[name='"+name+"']");
var toName = $obj.attr("toName");
var toValue = document.getElementsByName(toName)[0].value;
if($obj.val() == toValue){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Email(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.Email.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function QQ(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.QQ.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function IdCard(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(validator.IdCard.test($obj.val())){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Range(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
var min = $obj.attr("min");
var max = $obj.attr("max");
if($obj.val() != "" && $obj.val()-min>=0 && max-$obj.val()>=0){
return true;
}
// $errorMsg.append("<span>"+$obj.attr("msg")+"</span>");
return false;
}
function Limit(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
var minLen = $obj.attr("minLen");
var maxLen = $obj.attr("maxLen");
var _length = $obj.val().length > $obj.html().length ? $obj.val().length : $obj.html().length;
if(_length >= minLen && _length <= maxLen){
return true;
}
return false;
}


function CheckRequire(name){
var $obj = $(".validator[name='"+name+"']");
var require = $obj.attr("require");
var temp_require = $obj.attr("temp_require");
if((require && require == "no") || (temp_require && temp_require == "no")){
return true;
}
for(var i = 0;i<$obj.size();i++){
if($obj[i].checked){
//$obj.eq(i).siblings(".validator[name='"+name+"']")
return true;
}
}
return false;


}
function Compare(name){
var $obj = $(".validator[name='"+name+"']");
var compare = $obj.attr("compare");
var compareTo = $obj.attr("compareTo");
var $compareTo = $(".validator[compare='"+compareTo+"']");
compareVal = $obj.val();
compareToVal = $compareTo.val();
if(compareVal == ""){
return false;
}
if(compareToVal == ""){
compareToVal = 0;
}
if(compareVal.indexOf("-") || compareToVal.indexOf("-") ){
compareVal = compareVal.replace(/\-/g,"").replace(/\s*/g,"").replace(/\:/g,"");
compareToVal = compareToVal.replace(/\-/g,"").replace(/\s*/g,"").replace(/\:/g,"");
if(compareVal.length == compareToVal.length){
//doNothing;
}else if(compareVal.length > compareToVal.length){
var length = compareVal.length - compareToVal.length;
for(var i = 0;i < length;i++){
compareToVal = compareToVal + "0";
}
}else{
var length = compareToVal.length - compareVal.length;
for(var i = 0;i < length;i++){
compareVal = compareVal + "0";
}
}
}
if(compare == "maxVal"){
if(compareVal - compareToVal >= 0){
var id = $compareTo.attr("name");
$compareTo.parent().removeClass("info error");
if($("#"+id).size()>0){
$("#"+id).remove();
}
return true;
}
}else{
if(compareVal - compareToVal < 0){
var id = $compareTo.attr("name");
$compareTo.parent().removeClass("info error");
if($("#"+id).size()>0){
$("#"+id).remove();
}
return true;
}
}
return false;



}


function Float(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
var num = $obj.attr("num");
var immutable = $obj.attr("immutable");
if(validator.Float.test($obj.val())){
if(num){
if($obj.val().indexOf(".") != -1){
var str = $obj.val().substring($obj.val().indexOf(".")+1);
if(immutable && immutable == "ture"){
if(str.length != num){
return false;
}
}
if(str.length > num){
return false;
}
}
}
if($obj.val() > 99999999999 || $obj.val() < -21400000000){
$obj.attr("wrongNum","非法数字!");
return false;
}
if($obj.attr("wrongNum")){
$obj.removeAttr("wrongNum");
}
return true;
}
return false;
}


function SelectRequire(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if($obj.val() == ""){
return false;
}
return true;
}
function removeRedBorder(e){
if($(e).attr("class").indexOf("validator") != -1){
blurSelf(e);
}
}


function titleLimit(name,timestamp){
var param = "";
if(timestamp){
param = (timestamp != "" ? "[timestamp='" + timestamp +"']" : "");
}
var $obj = $(".validator[name='"+name+"']" + param);
if(!validator.titleLimit.test($obj.val())){
return false;
}
return true;
}


/*
function English(data,msg){
if(validator.English.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Number(data,msg){
if(validator.Number.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Chinese(data,msg){
if(validator.Chinese.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Phone(data,msg){
if(validator.Phone.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Mobile(data,msg){
if(validator.Mobile.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Password(data,msg){
if(validator.Password.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Repeat(data,toName,msg){
var toValue = document.getElementsByName(toName)[0].value;
if(data == toValue){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Email(data,msg){
if(validator.Email.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function QQ(data,msg){
if(validator.QQ.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function IdCard(data,msg){
if(validator.IdCard.test(data)){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
function Range(data,min,max,msg){
if(data-min>=0 && max-data>=0){
return true;
}
$errorMsg.append("<span>"+msg+"</span>");
return false;
}
*/
function checkFloat(obj){

var $obj = $(obj);
var num = $obj.attr("num");
var immutable = $obj.attr("immutable");
if(validator.Float.test($obj.val())){
if(num){
if($obj.val().indexOf(".") != -1){
var str = $obj.val().substring($obj.val().indexOf(".")+1);
if(immutable && immutable == "ture"){
if(str.length != num){
appendErrorMsgextend(obj,$(obj).attr("msg"));
return false;
}
}
if(str.length > num){
appendErrorMsgextend(obj,$(obj).attr("msg"));
return false;
}
}
}
if($obj.val() > 99999999999 || $obj.val() < -21400000000){
$obj.attr("wrongNum","非法数字!");
appendErrorMsgextend(obj,$(obj).attr("msg"));
return false;
}
if($obj.attr("wrongNum")){
$obj.removeAttr("wrongNum");
}
return true;
}
return false;
}
//对行中对象绑定事件
function reblurbind(clqdid){
$('#'+clqdid).find(".validator").each(function(){
$(this).blur(function(){
blurSelf(this);
});
})
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值