📄 validate.js
字号:
var DHTML = (document.getElementById || document.all || document.layers);
var DEFAULT_MIN = 0 ;
var DEFAULT_MAX = 10000000000 ;
var DEFAULT_DECIMAL_PLACE = 2 ;
//var DEFAULT_DATE_FORMAT = "dd-MM-yyyy" ;
var DEFAULT_DATE_FORMAT = "yyyy-MM-dd" ;
var orgColor = "black" ;
var ErrMsg = "" ;
var sErrMsg = "";
function getObj(name){
if (document.getElementById) {
if(!isNull(document.getElementById(name)))
return document.getElementById(name).style;
} else if (document.all) {
if(!isNull(document.all[name]))
return document.all[name].style;
} else if (document.layers) {
return document.layers[name];
}
return null;
}
function changeColor(sLabelId, clsName) {
sLabelId = sLabelId + "_label" ;
var retVal = "";
if (typeof sLabelId != "undefined") {
var sLabelArray = sLabelId.split(",");
for (var i=0; i<sLabelArray.length; i++) {
var oLabel = document.all(sLabelArray[i]);
if (typeof oLabel != "undefined") {
oLabel.className = clsName;
retVal += oLabel.innerHTML;
if (i<sLabelArray.length-1) retVal += ", ";
}
}
}
return retVal;
}
function changeCol(obj,col)
{
if (!DHTML) return;
var x = getObj(obj+"_label");
if(!isNull(x)){
x.color = col;
return x.innerHTML ;
}
}
function validate(form)
{
ErrMsg = "" ;
sErrMsg = "" ;
var sCustomFunction = null ;
var arg = validate.arguments ;
if(arg==null)
{
return false ;
}
var oForm = arg[0] ;
if (arg.length > 1) sCustomFunction = arg[1];
if (sCustomFunction != null)
{
var result = checkError(oForm) ;
var custResult = eval(sCustomFunction) ;
showWindow() ;
return result && custResult ;
}
else
{
var result = checkError(oForm) ;
showWindow() ;
return result ;
}
}
function showWindow()
{
if(sErrMsg!="" || ErrMsg!="")
{
sHearder = "<tr class=\"lfRowHead\"><td><span>字段</span></td><td>错误</td></tr>" ;
sErrMsg = "<body class=\"ifTableBg\"><table width=\"100%\" class=\"bg_listing\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">" + sHearder + sErrMsg ;
sErrMsg += ErrMsg ;
sErrMsg += "</table></body>";
if(myWindow!=null && !myWindow.closed) {
myWindow.close();
}
myWindow = window.open("","err","toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=500,height=200");
myWindow.document.write("<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"/css/Styles.css\" >");
myWindow.document.write("<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"/css/iccs.css\" >");
myWindow.document.write(sErrMsg) ;
return false ;
}
}
function getNextElement(form,i){
var objectName = form.elements[i].name ;
for(var j=i+1;j<form.elements.length;j++){
var o = form.elements[j] ;
var tempArray = getPara(o.name) ;
if(o.type.toUpperCase()=="HIDDEN" && tempArray[0]==objectName){
return o ;
}
}
return null ;
}
function getErr(sLabel,errmgr)
{
return "<tr class=\"bg_white\"><td><span class=\"label\">" + sLabel + "</span></td><td>" + errmgr + "</td></tr>\n";
}
function checkText(o, strArray, paraObject)
{
var value = o.value ;
var type = strArray[2] ;
var shortName = strArray[0] ;
arrLength = strArray.length ;
if(type!="bypass" && arrLength>=1)
{ //bypass the check
if(isNull(value)){
if(strArray[1]=="notnull")
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"输入域的值 不能为空") ;
}
else{
changeColor(shortName, "label") ;
}
}
else{
if(withInValidStr(o.value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值无效") ;
}
if(type=="long")
{
if(!(isIntegerChar(value) && value.indexOf(".")<0))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值无效,只接受整数") ;
}
if(!isWithRange(strArray[3],strArray[4],value))
{
return getErr(sThisFieldLabel,"数值由" + strArray[3] + "至" + strArray[4] ) ;
}
changeColor(shortName, "label") ;
/*if(!isValidLong(strArray[3],strArray[4],value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
else{
changeColor(shortName, "label") ;
} */
}
if(type=="text")
{
if( (!isNull(strArray[3]) && value.length < strArray[3]))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"输入量要超过"+strArray[3]+"个字元") ;
}
if((!isNull(strArray[4]) && value.length>strArray[4]))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"超过了"+strArray[4]+"个字元的最大输入量") ;
}
changeColor(shortName, "label") ;
}
else if(type=="date")
{
var dFormat = isNull(strArray[3]) ? DEFAULT_DATE_FORMAT : strArray[3] ;
var dataDate = getValidDate(value,dFormat) ;
if(dataDate==null)
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"日期无效 "+ dFormat) ;
//return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
else{
var fromDate = isNull(strArray[4]) ? null : getValidDate(strArray[4],dFormat) ;
var toDate = isNull(strArray[5]) ? null : getValidDate(strArray[5],dFormat) ;
if((fromDate!=null && fromDate>dataDate) || toDate!=null && dataDate>toDate)
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
//return getErr(sThisFieldLabel,paraObject.errmgr) ;
return getErr(sThisFieldLabel,"日期无效 "+ dFormat) ;
}
else
{
changeColor(shortName, "label") ;
}
}
}
else if(type=="float" || type=="quantity" || type=="price")
{
if(!(isIntegerChar(value) && !isMoreThanOnce(value,".") ))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值无效,只接受数字和字符\".\"") ;
}
if(!isWithRange(strArray[3],strArray[4],value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数值由 " + strArray[3] + " 位至 " + strArray[4] + " 位" ) ;
}
if(!isNull(strArray[5]) && !(getDecimalPlace(value)<=strArray[5]))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"小数位为"+strArray[5] ) ;
}
changeColor(shortName, "label") ;
/*if(!isValidFloat(strArray[3],strArray[4],DEFAULT_DECIMAL_PLACE,value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
else
{
changeColor(shortName, "label") ;
}*/
}
else if(type=="alphabetic")
{
if(!isAlphabetic(value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值无效 (只接受数据 A-Z a-z)") ;
}
changeColor(shortName, "label") ;
}
else if(type=="phonecode")
{
if(!isPhoneCode(value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值无效 (只接受数字 0-9 以及字符 \"-\")") ;
}
changeColor(shortName, "label") ;
}
else if(type=="numberCode")
{
if(!isNumberCode(value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值无效 (只接受数字 0-9 )") ;
}
changeColor(shortName, "label") ;
}
else if(type=="englishcode")
{
if(!isEnglishCode(value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值无效 (只接受英文字符!)") ;
}
if( (!isNull(strArray[3]) && value.length < strArray[3]))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"输入量要超过"+strArray[3]+"个字元") ;
}
if((!isNull(strArray[4]) && value.length>strArray[4]))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"超过了"+strArray[4]+"个字元的最大输入量") ;
}
changeColor(shortName, "label") ;
}
else if(type=="alphanumeric")
{
if(!isAlphanumeric(value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值无效 (只接受数据 A-Z a-z 0-9)") ;
}
changeColor(shortName, "label") ;
}
else if(type=="email")
{
if(!isValidEmail(value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"电子邮件无效") ;
}
changeColor(shortName, "label") ;
}
else if(type=="yesno")
{
if(!isYesNo(value))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
else
{
changeColor(shortName, "label") ;
}
}
else
{
changeColor(shortName, "label") ;
}
}
}
return "" ;
}
function checkPassword(o, strArray, paraObject)
{
var value = o.value ;
var shortName = strArray[0] ;
if(isNull(value) && strArray[1]=="notnull")
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值不能为空") ;
}
if(!isNull(value) && !isValidPassword(value,strArray[2]))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"字元的最小输入量为"+strArray[2]) ;
}
changeColor(shortName, "label") ;
return "" ;
}
function checkCheckBox(o, strArray, form, paraObject)
{
var value = o.value ;
var shortName = strArray[0] ;
if(!isCheckboxChecked(o,form) && strArray[1]=="notnull")
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
else
{
changeColor(shortName, "label") ;
return "" ;
}
}
function checkRadio(o, strArray, form, paraObject)
{
var value = o.value ;
var shortName = strArray[0] ;
if(!isRadioChecked(o,form) && strArray[1]=="notnull")
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
else
{
changeColor(shortName, "label") ;
return "" ;
}
}
function checkSelectMultiple(o, strArray, paraObject)
{
var value = o.value ;
var shortName = strArray[0] ;
if(!isSelect(o) && strArray[1]=="notnull")
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
else
{
var count = 0 ;
for(var i=0;i<o.options.length;i++)
{
if(o.options[i].selected)
{
count++ ;
}
}
if(count<strArray[2] || count>strArray[3])
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
changeColor(shortName, "label") ;
return "" ;
}
}
function checkSelect(o, strArray, paraObject)
{
var value = o.value ;
var shortName = strArray[0] ;
if((!isNull(strArray[1]) && strArray[1]>o.selectedIndex) || (!isNull(strArray[2]) && strArray[2]<o.selectedIndex))
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,paraObject.errmgr) ;
}
else{
changeColor(shortName, "label") ;
return "" ;
}
}
function checkTextArea(o, strArray, paraObject)
{
var value = o.value ;
var shortName = strArray[0] ;
if(value.length<1 && strArray[1]=="notnull")
{
var sThisFieldLabel = changeColor(shortName, "inValidLabel") ;
return getErr(sThisFieldLabel,"数据值不能为空") ;
}
if(withInValidStr(o.value))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -