X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Web%2Fresources%2FWebUIValidation_2.0.js;h=085f08d4a248cb4ec5c7927f94636401c6732039;hb=6c035e225abc36a15501a03f574744824225350b;hp=b614bb6b462086837492bd9fe524d08f439d2ee4;hpb=6f733d05c2435bec596fbc357fd4c62219d57622;p=mono.git diff --git a/mcs/class/System.Web/resources/WebUIValidation_2.0.js b/mcs/class/System.Web/resources/WebUIValidation_2.0.js index b614bb6b462..085f08d4a24 100644 --- a/mcs/class/System.Web/resources/WebUIValidation_2.0.js +++ b/mcs/class/System.Web/resources/WebUIValidation_2.0.js @@ -26,74 +26,72 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -var have_validation_summaries = false; +function WebFormValidation_Initialize(webForm) { -function SetValidatorContext (currForm) +webForm.have_validation_summaries = false; + +webForm.HaveRegexp = function () { - if (currForm.Page_Validators && (Page_Validators != currForm.Page_Validators)) { - Page_Validators = currForm.Page_Validators; - Page_ValidationSummaries = currForm.Page_ValidationSummaries; - ValidatorOnLoad (); - } + if (window.RegExp) + return true; + return false; } -function ValidatorOnLoad () +webForm.ValidatorOnLoad = function () { - if (typeof (Page_ValidationSummaries) != 'undefined' && Page_ValidationSummaries != null) { - have_validation_summaries = true; - for (var v = 0; v < Page_ValidationSummaries.length; v++) { - var vs = Page_ValidationSummaries [v]; - if (vs.getAttribute ("validationgroup") == null) - vs.setAttribute ("validationgroup", ""); - } + if (typeof (webForm.Page_ValidationSummaries) != 'undefined' && webForm.Page_ValidationSummaries != null) { + webForm.have_validation_summaries = true; } - for (var v = 0; v < Page_Validators.length; v++) { - var vo = Page_Validators [v]; + for (var v = 0; v < webForm.Page_Validators.length; v++) { + var vo = webForm.Page_Validators [v]; - if (vo.getAttribute ("isvalid") == null) - vo.setAttribute ("isvalid", "true"); + if (typeof(vo.isvalid) == "string" && vo.isvalid == "False") + vo._isvalid = false; + else + vo._isvalid = true; - if (vo.getAttribute ("enabled") == null) - vo.setAttribute ("enabled", "true"); - - if (vo.getAttribute ("validationgroup") == null) - vo.setAttribute ("validationgroup", ""); + if (typeof(vo.enabled) == "string" && vo.enabled == "False") + vo._enabled = false; + else + vo._enabled = true; + + if (typeof(vo.evaluationfunction) == "string") + vo.evaluationfunction = webForm [vo.evaluationfunction]; } - Page_ValidationActive = true; + webForm.Page_ValidationActive = true; } -var validation_result = true; +webForm.validation_result = true; -function ValidationSummaryOnSubmit (group) +webForm.ValidationSummaryOnSubmit = function (group) { /* handle validation summaries here */ - if (validation_result == false && have_validation_summaries) { + if (webForm.validation_result == false && webForm.have_validation_summaries) { - for (var vi = 0; vi < Page_ValidationSummaries.length; vi++) { - var vs = Page_ValidationSummaries[vi]; + for (var vi = 0; vi < webForm.Page_ValidationSummaries.length; vi++) { + var vs = webForm.Page_ValidationSummaries[vi]; - if(IsValidationGroupMatch(vs, group)) { + if(webForm.IsValidationGroupMatch(vs, group)) { - var header = vs.getAttribute ("headertext"); - if (header == null) - header = ""; + var header = ""; + if(typeof(vs.headertext)=="string") + header = vs.headertext; - attr = vs.getAttribute ("showsummary"); - if (attr == null || attr.toLowerCase() == "true") { - var displaymode = vs.getAttribute ("displaymode"); - if (displaymode == null) displaymode = "Bulleted"; + if (vs.showsummary != "False") { + if (typeof(vs.displaymode) != "string") + vs.displaymode = "BulletList"; var html = ""; - if (displaymode == "List") { + if (vs.displaymode == "List") { list_pre = ""; list_post = ""; item_pre = ""; item_post = "
"; } - else if (displaymode == "SingleParagraph") { + else if (vs.displaymode == "SingleParagraph") { list_pre = ""; list_post = "
"; item_pre = ""; @@ -108,11 +106,11 @@ function ValidationSummaryOnSubmit (group) html += header; html += list_pre; - for (var v = 0; v < Page_Validators.length; v++) { - var vo = Page_Validators [v]; + for (var v = 0; v < webForm.Page_Validators.length; v++) { + var vo = webForm.Page_Validators [v]; - if (vo.getAttribute ("isvalid").toLowerCase() == "false") { - var text = ValidatorGetErrorMessage (vo); + if (!vo._isvalid) { + var text = vo.errormessage; if (text != null && text != "") { html += item_pre + text + item_post; } @@ -124,15 +122,14 @@ function ValidationSummaryOnSubmit (group) vs.style.display = "block"; } - attr = vs.getAttribute ("showmessagebox"); - if (attr != null && attr.toLowerCase() == "true") { + if (vs.showmessagebox == "True") { var v_contents = ""; - for (var v = 0; v < Page_Validators.length; v++) { - var vo = Page_Validators [v]; + for (var v = 0; v < webForm.Page_Validators.length; v++) { + var vo = webForm.Page_Validators [v]; - if (vo.getAttribute ("isvalid").toLowerCase() == "false") { - var text = ValidatorGetErrorMessage (vo); + if (!vo._isvalid) { + var text = vo.errormessage; if (text != null && text != "") { v_contents += "-" + text + "\n"; } @@ -150,16 +147,16 @@ function ValidationSummaryOnSubmit (group) } } -function ValidatorCommonOnSubmit () +webForm.ValidatorCommonOnSubmit = function () { - rv = validation_result; - validation_result = true; + var rv = webForm.validation_result; + webForm.validation_result = true; return rv; } -function ValidatorGetValue (controlname) +webForm.ValidatorGetValue = function (controlname) { - var el = GetElement (controlname); + var el = webForm.GetElement (controlname); /* if the element has a 'value' attribute, return it */ if (typeof (el.value) != 'undefined' && el.value != null) { @@ -171,9 +168,23 @@ function ValidatorGetValue (controlname) if (typeof (el.selectedIndex) != 'undefined') { return el.options[el.selectedIndex].value; } + + return webForm.ValidatorGetValueRecursive(el); } -function ValidatorTrim (s) +webForm.ValidatorGetValueRecursive = function (el) +{ + if (typeof(el.value) == "string") { + if (el.type != "radio" || el.checked == true) return el.value; + } + for (var i = 0; i 0); + var beginGroupSize, subsequentGroupSize; + var groupSizeNum = parseInt(validator.groupsize, 10); + if (!isNaN(groupSizeNum) && groupSizeNum > 0) { + beginGroupSize = "{1," + groupSizeNum + "}"; + subsequentGroupSize = "{" + groupSizeNum + "}"; + } + else { + beginGroupSize = subsequentGroupSize = "+"; + } + var exp = new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + "(\\" + validator.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)" + + (hasDigits ? "\\" + validator.decimalchar + "?(\\d{0," + validator.digits + "})" : "") + + "\\s*$"); + var m = s.match(exp); + if (m == null) + return null; + if (m[2].length == 0 && hasDigits && m[5].length == 0) + return null; + var cleanInput = (m[1] != null ? m[1] : "") + m[2].replace(new RegExp("(\\" + validator.groupchar + ")", "g"), "") + ((hasDigits && m[5].length > 0) ? "." + m[5] : ""); + var num = parseFloat(cleanInput); + return (isNaN(num) ? null : num); } -function GetFullYear(year, maxYear) +webForm.GetFullYear = function (year, maxYear) { var twoDigitMaxYear = maxYear % 100; var centure = maxYear - twoDigitMaxYear; @@ -333,26 +370,38 @@ function GetFullYear(year, maxYear) /*******************/ /* validators */ -function CompareValidatorEvaluateIsValid (validator) +webForm.CompareValidatorEvaluateIsValid = function (validator) { - var ControlToCompare = validator.getAttribute ("controltocompare"); - var ValueToCompare = validator.getAttribute ("valuetocompare"); - var Operator = validator.getAttribute ("operator").toLowerCase(); - var ControlToValidate = validator.getAttribute ("controltovalidate"); - var DataType = validator.getAttribute ("datatype"); - - var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate)); - var compare = (ControlToCompare != null && ControlToCompare != "") ? ValidatorTrim (ValidatorGetValue (ControlToCompare)) : ValueToCompare; + var Operator = validator.operator.toLowerCase(); + var ControlToValidate = validator.controltovalidate; + var DataType = validator.type; - var left = Convert (ctrl_value, DataType, validator); + var ctrl_value = webForm.ValidatorGetValue (ControlToValidate); + if (webForm.ValidatorTrim (ctrl_value) == "") { + webForm.ValidatorSucceeded (validator); + return true; + } + + var left = webForm.Convert (ctrl_value, DataType, validator); if (left == null) { - ValidatorFailed (validator); + webForm.ValidatorFailed (validator); return false; } + + if (Operator == "datatypecheck") { + webForm.ValidatorSucceeded (validator); + return true; + } - var right = compare != null ? Convert (compare, DataType, validator) : null; + var compare = ""; + if (typeof(validator.controltocompare) == "string" && document.getElementById(validator.controltocompare)) + compare = webForm.ValidatorGetValue(validator.controltocompare); + else if (typeof(validator.valuetocompare) == "string") + compare = validator.valuetocompare; + + var right = compare != null ? webForm.Convert (compare, DataType, validator) : null; if (right == null) { - ValidatorSucceeded (validator); + webForm.ValidatorSucceeded (validator); return true; } @@ -378,100 +427,99 @@ function CompareValidatorEvaluateIsValid (validator) } if (result == false) { - ValidatorFailed (validator); + webForm.ValidatorFailed (validator); return false; } else { - ValidatorSucceeded (validator); + webForm.ValidatorSucceeded (validator); return true; } } -function RangeValidatorEvaluateIsValid (validator) +webForm.RangeValidatorEvaluateIsValid = function (validator) { - var MinimumValue = parseInt (validator.getAttribute ("minimumvalue")); - var MaximumValue = parseInt (validator.getAttribute ("maximumvalue")); - var ControlToValidate = validator.getAttribute ("controltovalidate"); - var DataType = validator.getAttribute ("datatype"); + var ControlToValidate = validator.controltovalidate; + var DataType = validator.type; - var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate)); + var ctrl_value = webForm.ValidatorTrim (webForm.ValidatorGetValue (ControlToValidate)); if (ctrl_value == "") { - ValidatorSucceeded (validator); + webForm.ValidatorSucceeded (validator); return true; } - var val = Convert (ctrl_value, DataType, validator); + var MinimumValue = webForm.Convert (validator.minimumvalue, DataType, validator); + var MaximumValue = webForm.Convert (validator.maximumvalue, DataType, validator); + var val = webForm.Convert (ctrl_value, DataType, validator); if (val == null || val < MinimumValue || val > MaximumValue) { - ValidatorFailed (validator); + webForm.ValidatorFailed (validator); return false; } else { - ValidatorSucceeded (validator); + webForm.ValidatorSucceeded (validator); return true; } } -function RegularExpressionValidatorEvaluateIsValid (validator) +webForm.RegularExpressionValidatorEvaluateIsValid = function (validator) { - var ValidationExpression = validator.getAttribute ("validationexpression"); - var ControlToValidate = validator.getAttribute ("controltovalidate"); + var ValidationExpression = validator.validationexpression; + var ControlToValidate = validator.controltovalidate; - var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate)); + var ctrl_value = webForm.ValidatorTrim (webForm.ValidatorGetValue (ControlToValidate)); if (ctrl_value == "") { - ValidatorSucceeded (validator); + webForm.ValidatorSucceeded (validator); return true; } + if (!webForm.HaveRegexp ()) + return false; + var r = new RegExp (ValidationExpression); match = r.exec (ctrl_value); - if (match == null || match[0] == "") { - ValidatorFailed (validator); + if (match == null || match[0] != ctrl_value) { + webForm.ValidatorFailed (validator); return false; } else { - ValidatorSucceeded (validator); + webForm.ValidatorSucceeded (validator); return true; } } -function RequiredFieldValidatorEvaluateIsValid (validator) +webForm.RequiredFieldValidatorEvaluateIsValid = function (validator) { - var InitialValue = validator.getAttribute ("initialvalue"); - var ControlToValidate = validator.getAttribute ("controltovalidate"); + var InitialValue = validator.initialvalue; + var ControlToValidate = validator.controltovalidate; - var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate)); + var ctrl_value = webForm.ValidatorTrim (webForm.ValidatorGetValue (ControlToValidate)); - if (ctrl_value == ValidatorTrim (InitialValue)) { - ValidatorFailed (validator); + if (ctrl_value == webForm.ValidatorTrim (InitialValue)) { + webForm.ValidatorFailed (validator); return false; } else { - ValidatorSucceeded (validator); + webForm.ValidatorSucceeded (validator); return true; } } -function CustomValidatorEvaluateIsValid (validator) +webForm.CustomValidatorEvaluateIsValid = function (validator) { - var InitialValue = validator.getAttribute ("initialvalue"); - var ControlToValidate = validator.getAttribute ("controltovalidate"); + var ControlToValidate = validator.controltovalidate; + var evaluationfunc = validator.clientvalidationfunction; + var ctrl_value; - if (!ControlToValidate) { - ValidatorSucceeded (validator); - return true; - } - - var evaluationfunc = validator.getAttribute ("clientvalidationfunction"); + if (ControlToValidate) { + ctrl_value = webForm.ValidatorTrim (webForm.ValidatorGetValue (ControlToValidate)); - var ctrl_value = ValidatorTrim (ValidatorGetValue (ControlToValidate)); - - if ((ctrl_value.length == 0) && ((typeof(validator.validateemptytext) != "string") || (validator.validateemptytext != "true"))) { - ValidatorSucceeded (validator); + if ((ctrl_value.length == 0) && ((typeof(validator.validateemptytext) != "string") || (validator.validateemptytext != "true"))) { + webForm.ValidatorSucceeded (validator); return true; - } - + } + } else + ctrl_value = ""; var result = true; if (evaluationfunc && evaluationfunc != "") { @@ -481,11 +529,11 @@ function CustomValidatorEvaluateIsValid (validator) } if (result) { - ValidatorSucceeded (validator); + webForm.ValidatorSucceeded (validator); return true; } else { - ValidatorFailed (validator); + webForm.ValidatorFailed (validator); return false; } } @@ -493,18 +541,18 @@ function CustomValidatorEvaluateIsValid (validator) /*********************/ /* utility functions */ -function Convert (s, ty, validator) +webForm.Convert = function (s, ty, validator) { var cvt = this ["To" + ty]; if (typeof (cvt) == 'function') - return cvt (s, validator); + return cvt.call (this, s, validator); else return null; } -function ValidatorUpdateDisplay (v, valid) +webForm.ValidatorUpdateDisplay = function (v, valid) { - var display = v.getAttribute ("display"); + var display = v.display; /* for validators that aren't displayed, do nothing */ if (display == "None") { @@ -517,39 +565,22 @@ function ValidatorUpdateDisplay (v, valid) } } -function ValidatorGetErrorMessage (v) -{ - var text = v.getAttribute ("errormessage"); - if (text == null || text == "") - text = v.getAttribute ("text"); - if (text == null) - text = ""; - return text; -} - -function ValidatorGetText (v) -{ - var text = v.getAttribute ("text"); - if (text == null || text == "") - text = v.getAttribute ("errormessage"); - if (text == null) - text = ""; - return text; -} - -function ValidatorFailed (v) +webForm.ValidatorFailed = function (v) { - ValidatorUpdateDisplay (v, false); + webForm.ValidatorUpdateDisplay (v, false); } -function ValidatorSucceeded (v) +webForm.ValidatorSucceeded = function (v) { - ValidatorUpdateDisplay (v, true); + webForm.ValidatorUpdateDisplay (v, true); } -function GetElement(id) +webForm.GetElement = function (id) { var x = document.getElementById ? document.getElementById (id) : ((document.all) ? document.all [id] : null); return x; } + + +}