📄 formvalidator.js
字号:
RegexValid : function(id, setting)
{
var srcTag = $("#"+id).get(0).tagName;
var elem = $("#"+id).get(0);
if(elem.settings[0].empty && elem.value==""){
setting.isValid = true;
}
else
{
var regexpress = setting.regexp;
if(setting.datatype=="enum") regexpress = eval("regexEnum."+regexpress)
if(regexpress==undefined || regexpress==""){
setting.isValid = false;
return;
}
var exp = new RegExp(regexpress, setting.param);
if (exp.test($("#"+id).val()))
setting.isValid = true;
else
setting.isValid = false;
}
},
InputValid : function(id, setting)
{
var srcjo = $("#"+id);
var elem = srcjo.get(0);
var val = srcjo.val();
var sType = elem.type;
var len = $.formValidator.GetLength(id);
switch(sType)
{
case "text":
case "hidden":
case "password":
case "textarea":
case "file":
case "checkbox":
case "radio":
if (setting.type == "size") {
if (len < setting.min || len > setting.max) {
setting.isValid = false;
}
else {
setting.isValid = true;
}
}
else{
stype = (typeof setting.min);
if(stype =="number")
{
if(!isNaN(val))
{
nval = parseFloat(val);
if(nval>=setting.min && nval<= setting.max)
setting.isValid = true;
else
setting.isValid = false;
}
else
setting.isValid = false;
}
if(stype =="string"){
if(val>=setting.min && val<= setting.max)
setting.isValid = true;
else
setting.isValid = false;
}
}
break;
case "select-one":
if(len > 0)
setting.isValid =true;
else
setting.isValid =false;
break;
case "select-more":
break;
}
},
CompareValid : function(id, setting)
{
var srcjo = $("#"+id);
var desjo = $("#"+setting.desID );
setting.isValid = false;
curvalue = srcjo.val();
ls_data = desjo.val();
if(setting.datatype=="number")
{
if(!isNaN(curvalue) && !isNaN(ls_data))
{
curvalue = parseFloat(curvalue);
ls_data = parseFloat(ls_data);
}
else
{
return;
}
}
switch(setting.operateor)
{
case "=":
if(curvalue == ls_data) setting.isValid = true;
break;
case "!=":
if(curvalue != ls_data) setting.isValid = true;
break;
case ">":
if(curvalue > ls_data) setting.isValid = true;
break;
case ">=":
if(curvalue >= ls_data) setting.isValid = true;
break;
case "<":
if(curvalue < ls_data) setting.isValid = true;
break;
case "<=":
if(curvalue <= ls_data) setting.isValid = true;
break;
case "oneok":
if($.formValidator.IsEmpty(id) || $.formValidator.IsEmpty(IsEmpty.desID) )
setting.isValid = false;
else
setting.isValid = true;
}
}
};
$.fn.formValidator = function( msgOptions)
{
var setting =
{
validatorGroup : "1",
empty :false,
submitonce : false,
automodify : false,
entermovetonext : true,
onshow :"请输入内容",
onfocus: "请输入内容",
oncorrect: "输入正确",
onempty: "输入内容为空",
onvalid : function(){return true},
onfocusevent : function(){},
onblurevent : function(){},
tipid : this.get(0).id+"Tip",
defaultvalue : null,
validateType : "InitValidator"
};
msgOptions = msgOptions || {};
$.extend(setting, msgOptions);
return this.each(function()
{
var triggerID = this.id;
var tip = $( "#"+setting.tipid );
$.formValidator.appendValid(triggerID,setting);
if(!$.formValidator.getInitConfig(setting.validatorGroup).alertMessage){
$.formValidator.SetTipState(setting.tipid,"onShow",setting.onshow);
}
var srcTag = this.tagName;
var defaultValue = setting.defaultvalue;
if (srcTag == "INPUT" || srcTag=="TEXTAREA")
{
var stype = this.type;
var joeach = $(this);
if (stype == "checkbox" || stype == "radio") {
joeach = $("input[@name=" + this.name + "]");
if(defaultValue)
{
checkobj = $("input[@name=" + this.name + "][@value='"+defaultValue+"']");
if(checkobj.length==1) checkobj.attr("checked","true");
}
}
else
{
if(defaultValue) joeach.val(setting.defaultvalue);
}
joeach.focus(function()
{
var settings = joeach.get(0).settings;
if(!$.formValidator.getInitConfig(settings[0].validatorGroup).alertMessage){
$.formValidator.SetTipState(settings[0].tipid,"onFocus",settings[0].onfocus);
}
if (stype == "password" || stype == "text" || stype == "textarea" || stype == "file") {
this.validoldvalue = $(this).val();
}
settings[0].onfocusevent(joeach.get(0));
});
joeach.blur(function()
{
var elem = joeach.get(0);
var thefirstsettings = elem.settings;
var settingslen = thefirstsettings.length;
var returnObj = $.formValidator.OneIsValid(triggerID,1);
if(returnObj.ajax >= 0 && elem.validoldvalue!=$(elem).val())
{
$.formValidator.SetTipState(thefirstsettings[0].tipid,"onLoad",thefirstsettings[returnObj.ajax].onwait);
$.formValidator.AjaxValid(triggerID, thefirstsettings[returnObj.ajax]);
}
else
{
if(!returnObj.additional) $.formValidator.ShowMessage(returnObj);
if(!returnObj.isValid)
{
var auto = thefirstsettings[0].automodify && (elem.type=="text" || elem.type=="textarea" || elem.type=="file")
if(auto && !$.formValidator.getInitConfig(thefirstsettings[0].validatorGroup).alertMessage)
{
alert(returnObj.setting.onerror);
$.formValidator.SetTipState(thefirstsettings[0].tipid,"onShow",setting.onshow);
}
}
}
thefirstsettings[0].onblurevent(joeach.get(0));
});
}
else if (srcTag == "SELECT")
{
srcjo = $(this);
var settings = this.settings;
if (defaultValue)
{
$.each( this.options ,function(){
if ( this.value==defaultValue) this.selected = true;
});
}
srcjo.focus(function()
{
if(!$.formValidator.getInitConfig(setting.validatorGroup).alertMessage){
$.formValidator.SetTipState(settings[0].tipid,"onFocus",settings[0].onfocus);
}
});
srcjo.bind( "change" , function()
{
var returnObj = $.formValidator.OneIsValid(triggerID,1);
if ( returnObj.ajax >= 0 && this.validoldvalue!=$(this).val()) {
$.formValidator.AjaxValid(triggerID, returnObj.setting);
}
else{
if(!returnObj.additional) $.formValidator.ShowMessage(returnObj);
}
});
}
});
};
$.fn.InputValidator = function(controlOptions)
{
var settings =
{
isValid : false,
min : 0,
max : 99999999999999,
forceValid : false,
type : "size",
defaultValue:null,
onerror:"输入错误",
validateType:"InputValidator"
};
controlOptions = controlOptions || {};
$.extend(settings, controlOptions);
return this.each(function(){
$.formValidator.appendValid(this.id,settings);
});
};
$.fn.SelectValidator = function(controlOptions)
{
var settings =
{
isValid : false,
onerror:"必须选择",
defaultValue:null,
validateType:"SelectValidator"
};
controlOptions = controlOptions || {};
$.extend(settings, controlOptions);
return this.each(function(){
$.formValidator.appendValid(this.id,settings);
});
};
$.fn.CompareValidator = function(controlOptions)
{
var settings =
{
isValid : false,
desID : "",
operateor :"=",
onerror:"输入错误",
validateType:"CompareValidator"
};
controlOptions = controlOptions || {};
$.extend(settings, controlOptions);
return this.each(function(){
var li_index = $.formValidator.appendValid(this.id,settings);
/*if(li_index==-1) return;
var elem = this;
$("#"+settings.desID).blur(function(){
var returnObj = $.formValidator.OneIsValid(elem.id,1);
if (!returnObj.isValid && returnObj.setting.index == li_index) {
var returnObj = $.formValidator.OneIsValid(elem.id, li_index);
}
if ( returnObj.ajax >= 0 && this.validoldvalue!=$(this).val()) {
$.formValidator.AjaxValid(triggerID, returnObj.setting);
}
else{
if(!returnObj.additional) $.formValidator.ShowMessage(returnObj);
}
});*/
});
};
$.fn.RegexValidator = function(controlOptions)
{
var settings =
{
isValid : false,
regexp : "",
param : "i",
datatype : "string",
onerror:"输入的格式不正确",
validateType:"RegexValidator"
};
controlOptions = controlOptions || {};
$.extend(settings, controlOptions);
return this.each(function(){
$.formValidator.appendValid(this.id,settings);
});
};
$.fn.AjaxValidator = function(controlOptions)
{
var settings =
{
isValid : false,
lastValid : "",
type : "GET",
url : "",
addidvalue : true,
datatype : "html",
data : "",
async : true,
beforesend : function(){return true;},
success : function(){return true;},
complete : function(){},
processdata : false,
error : function(){},
onerror:"服务器校验没有通过",
onwait:"正在等待服务器返回数据",
validateType:"AjaxValidator"
};
controlOptions = controlOptions || {};
$.extend(settings, controlOptions);
return this.each(function()
{
$.formValidator.appendValid(this.id,settings);
});
};
$.fn.DefaultPassed = function()
{
return this.each(function()
{
var settings = this.settings;
for ( var i = 1 ; i < settings.length ; i ++ )
{
settings[i].isValid = true;
$.formValidator.SetTipState(settings[0].tipid,"onSuccess",settings[0].oncorrect);
}
});
};
})(jQuery);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -