www.pudn.com > WorkFlowserver.rar > WebUIValidation.js


var Page_ValidationVer = "125"; 
var Page_IsValid = true; 
var Page_BlockSubmit = false; 
function ValidatorUpdateDisplay(val) { 
    if (typeof(val.display) == "string") {     
        if (val.display == "None") { 
            return; 
        } 
        if (val.display == "Dynamic") { 
            val.style.display = val.isvalid ? "none" : "inline"; 
            return; 
        } 
    } 
    val.style.visibility = val.isvalid ? "hidden" : "visible"; 
} 
function ValidatorUpdateIsValid() { 
    var i; 
    for (i = 0; i < Page_Validators.length; i++) { 
        if (!Page_Validators[i].isvalid) { 
            Page_IsValid = false; 
            return; 
        } 
   } 
   Page_IsValid = true; 
} 
function ValidatorHookupControlID(controlID, val) { 
    if (typeof(controlID) != "string") { 
        return; 
    } 
    var ctrl = document.all[controlID]; 
    if (typeof(ctrl) != "undefined") { 
        ValidatorHookupControl(ctrl, val); 
    } 
    else { 
        val.isvalid = true; 
        val.enabled = false; 
    } 
} 
function ValidatorHookupControl(control, val) { 
    if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") { 
        var i; 
        for (i = 0; i < control.length; i++) { 
            var inner = control[i]; 
            if (typeof(inner.value) == "string") { 
                ValidatorHookupControl(inner, val); 
            }  
        } 
        return; 
    } 
    else if (control.tagName != "INPUT" && control.tagName != "TEXTAREA" && control.tagName != "SELECT") { 
        var i; 
        for (i = 0; i < control.children.length; i++) { 
            ValidatorHookupControl(control.children[i], val); 
        } 
        return; 
    } 
    else { 
        if (typeof(control.Validators) == "undefined") { 
            control.Validators = new Array; 
            var ev; 
            if (control.type == "radio") { 
                ev = control.onclick; 
            } else { 
                ev = control.onchange; 
            } 
            if (typeof(ev) == "function" ) {             
                ev = ev.toString(); 
                ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}")); 
            } 
            else { 
                ev = ""; 
            } 
            var func = new Function("ValidatorOnChange(); " + ev); 
            if (control.type == "radio") { 
                control.onclick = func; 
            } else {             
                control.onchange = func; 
            } 
        } 
        control.Validators[control.Validators.length] = val; 
    }     
} 
function ValidatorGetValue(id) { 
    var control; 
    control = document.all[id]; 
    if (typeof(control.value) == "string") { 
        return control.value; 
    } 
    if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") { 
        var j; 
        for (j=0; j < control.length; j++) { 
            var inner = control[j]; 
            if (typeof(inner.value) == "string" && (inner.type != "radio" || inner.status == true)) { 
                return inner.value; 
            } 
        } 
    } 
    else { 
        return ValidatorGetValueRecursive(control); 
    } 
    return ""; 
} 
function ValidatorGetValueRecursive(control) 
{ 
    if (typeof(control.value) == "string" && (control.type != "radio" || control.status == true)) { 
        return control.value; 
    } 
    var i, val; 
    for (i = 0; i0 ? m[2] : "0") + "." + m[4]; 
        num = parseFloat(cleanInput); 
        return (isNaN(num) ? null : num);             
    }  
    else if (dataType == "Currency") { 
        exp = new RegExp("^\\s*([-\\+])?(((\\d+)\\" + val.groupchar + ")*)(\\d+)" 
                        + ((val.digits > 0) ? "(\\" + val.decimalchar + "(\\d{1," + val.digits + "}))?" : "") 
                        + "\\s*$"); 
        m = op.match(exp); 
        if (m == null) 
            return null; 
        var intermed = m[2] + m[5] ; 
        cleanInput = m[1] + intermed.replace(new RegExp("(\\" + val.groupchar + ")", "g"), "") + ((val.digits > 0) ? "." + m[7] : 0); 
        num = parseFloat(cleanInput); 
        return (isNaN(num) ? null : num);             
    } 
    else if (dataType == "Date") { 
        var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. ?)(\\d{1,2})\\4(\\d{1,2})\\s*$"); 
        m = op.match(yearFirstExp); 
        var day, month, year; 
        if (m != null && (m[2].length == 4 || val.dateorder == "ymd")) { 
            day = m[6]; 
            month = m[5]; 
            year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10)) 
        } 
        else { 
            if (val.dateorder == "ymd"){ 
                return null;		 
            }						 
            var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-/]|\\. ?)(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$"); 
            m = op.match(yearLastExp); 
            if (m == null) { 
                return null; 
            } 
            if (val.dateorder == "mdy") { 
                day = m[3]; 
                month = m[1]; 
            } 
            else { 
                day = m[1]; 
                month = m[3]; 
            } 
            year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10)) 
        } 
        month -= 1; 
        var date = new Date(year, month, day); 
        return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null; 
    } 
    else { 
        return op.toString(); 
    } 
} 
function ValidatorCompare(operand1, operand2, operator, val) { 
    var dataType = val.type; 
    var op1, op2; 
    if ((op1 = ValidatorConvert(operand1, dataType, val)) == null) 
        return false;     
    if (operator == "DataTypeCheck") 
        return true; 
    if ((op2 = ValidatorConvert(operand2, dataType, val)) == null) 
        return true; 
    switch (operator) { 
        case "NotEqual": 
            return (op1 != op2); 
        case "GreaterThan": 
            return (op1 > op2); 
        case "GreaterThanEqual": 
            return (op1 >= op2); 
        case "LessThan": 
            return (op1 < op2); 
        case "LessThanEqual": 
            return (op1 <= op2); 
        default: 
            return (op1 == op2);             
    } 
} 
function CompareValidatorEvaluateIsValid(val) { 
    var value = ValidatorGetValue(val.controltovalidate); 
    if (ValidatorTrim(value).length == 0) 
        return true; 
    var compareTo = ""; 
    if (null == document.all[val.controltocompare]) { 
        if (typeof(val.valuetocompare) == "string") { 
            compareTo = val.valuetocompare; 
        } 
    } 
    else { 
        compareTo = ValidatorGetValue(val.controltocompare); 
    } 
    return ValidatorCompare(value, compareTo, val.operator, val); 
} 
function CustomValidatorEvaluateIsValid(val) { 
    var value = ""; 
    if (typeof(val.controltovalidate) == "string") { 
        value = ValidatorGetValue(val.controltovalidate); 
        if (ValidatorTrim(value).length == 0) 
            return true; 
    } 
    var args = { Value:value, IsValid:true }; 
    if (typeof(val.clientvalidationfunction) == "string") { 
        eval(val.clientvalidationfunction + "(val, args) ;"); 
    }         
    return args.IsValid; 
} 
function RegularExpressionValidatorEvaluateIsValid(val) { 
    var value = ValidatorGetValue(val.controltovalidate); 
    if (ValidatorTrim(value).length == 0) 
        return true;         
    var rx = new RegExp(val.validationexpression); 
    var matches = rx.exec(value); 
    return (matches != null && value == matches[0]); 
} 
function ValidatorTrim(s) { 
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); 
    return (m == null) ? "" : m[1]; 
} 
function RequiredFieldValidatorEvaluateIsValid(val) { 
    return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue)) 
} 
function RangeValidatorEvaluateIsValid(val) { 
    var value = ValidatorGetValue(val.controltovalidate); 
    if (ValidatorTrim(value).length == 0)  
        return true; 
    return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) && 
            ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val)); 
} 
function ValidationSummaryOnSubmit() { 
    if (typeof(Page_ValidationSummaries) == "undefined")  
        return; 
    var summary, sums, s; 
    for (sums = 0; sums < Page_ValidationSummaries.length; sums++) { 
        summary = Page_ValidationSummaries[sums]; 
        summary.style.display = "none"; 
        if (!Page_IsValid) { 
            if (summary.showsummary != "False") { 
                summary.style.display = ""; 
                if (typeof(summary.displaymode) != "string") { 
                    summary.displaymode = "BulletList"; 
                } 
                switch (summary.displaymode) { 
                    case "List": 
                        headerSep = "
"; first = ""; pre = ""; post = "
"; final = ""; break; case "BulletList": default: headerSep = ""; first = ""; break; case "SingleParagraph": headerSep = " "; first = ""; pre = ""; post = " "; final = "
"; break; } s = ""; if (typeof(summary.headertext) == "string") { s += summary.headertext + headerSep; } s += first; for (i=0; i"; } for (i=0; i"; break; case "BulletList": default: s += " - " + Page_Validators[i].errormessage + "
"; break; case "SingleParagraph": s += Page_Validators[i].errormessage + " "; break; } } } span = document.createElement("SPAN"); span.innerHTML = s; s = span.innerText; alert(s); } } } }