diff --git a/Dado.Validators/js/validation.dev.js b/Dado.Validators/js/validation.dev.js index 67598f2..17f9451 100644 --- a/Dado.Validators/js/validation.dev.js +++ b/Dado.Validators/js/validation.dev.js @@ -90,11 +90,12 @@ function TypeValidatorEvaluateIsValid(val) { var v = ValidatorGetValue(val.contr } function RequiredFieldValidatorEvaluateIsValid(val) { - if(val.ischeckboxlist === "false") { - return ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue); + // Validate for Checkbox + if(val.validatefor === "checkbox") { + return document.getElementById(val.controltovalidate).checked } - // Validate for Checkbox and Radio Lists - else { + // Validate for CheckboxList + else if(val.validatefor === "checkboxlist") { var list = document.getElementById(val.controltovalidate) , inputs = list.getElementsByTagName("input") , i = 0; @@ -105,6 +106,10 @@ function RequiredFieldValidatorEvaluateIsValid(val) { return false; } + // Default provided validation + else { + return ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue); + } } function ValidateOnLoad() { diff --git a/Dado.Validators/js/validation.min.js b/Dado.Validators/js/validation.min.js index ab5e638..ca9f784 100644 --- a/Dado.Validators/js/validation.min.js +++ b/Dado.Validators/js/validation.min.js @@ -8,5 +8,6 @@ function ValidatorUpdateDisplay(a){"None"!=a.display&&(a.style.visibility=a.styl function RegularExpressionValidatorEvaluateIsValid(a){var b=ValidatorGetValue(a.controltovalidate);if(0==ValidatorTrim(b).length)return!0;a=RegExp(a.validationexpression,a.expressionoptions).exec(b);return null!=a&&b==a[0]} function LengthValidatorEvaluateIsValid(a){var b=~~a.minimumlength,c=~~a.maximumlength;if(""!=ValidatorGetValue(a.controltovalidate)&&(0>=c&&0",!1;if(0c)return a.innerHTML=""+a.maximumerrormessage+"",!1}return!0} function TypeValidatorEvaluateIsValid(a){var b=ValidatorGetValue(a.controltovalidate);if(null==b)return!0;switch(a.type){case "Boolean":return"true"==b.toLowerCase()||"false"==b.toLowerCase();case "Byte":return 0<=+b&&255>=+b;case "Char":return 1==b.length;case "Decimal":return b=b.replace(",",""),-7.922816251426434E28<=+b&&7.922816251426434E28>=+b;case "Double":return b=b.replace(",",""),-1.7976931348623157E308<=+b&&1.7976931348623157E308>=+b;case "Int16":return-32768<=+b&&32767>=+b;case "Int64":return-9223372036854775E3<= -+b&&9223372036854775E3>=+b;case "SByte":return-128<=+b&&127>=+b;case "Single":return-3.402823E38<=+b&&3.402823E38>=+b;default:return-2147483648<=+b&&2147483647>=+b}}function RequiredFieldValidatorEvaluateIsValid(a){if("false"===a.ischeckboxlist)return ValidatorTrim(ValidatorGetValue(a.controltovalidate))!=ValidatorTrim(a.initialvalue);a=document.getElementById(a.controltovalidate).getElementsByTagName("input");for(var b=0;b=+b;case "SByte":return-128<=+b&&127>=+b;case "Single":return-3.402823E38<=+b&&3.402823E38>=+b;default:return-2147483648<=+b&&2147483647>=+b}} +function RequiredFieldValidatorEvaluateIsValid(a){if("checkbox"===a.validatefor)return document.getElementById(a.controltovalidate).checked;if("checkboxlist"===a.validatefor){a=document.getElementById(a.controltovalidate).getElementsByTagName("input");for(var b=0;bA that contains the event data. protected override void OnInit(EventArgs e) { - DefaultErrorMessage = PropertiesValid && (_isCheckBoxList || _isRadioButtonList) ? DEFAULT_LIST_ERROR_MESSAGE : DEFAULT_ERROR_MESSAGE; + DefaultErrorMessage = PropertiesValid && _isCheckBox + ? DEFAULT_CHECKBOX_ERROR_MESSAGE + : (_isCheckBoxList || _isRadioButtonList) + ? DEFAULT_LIST_ERROR_MESSAGE + : DEFAULT_ERROR_MESSAGE; base.OnInit(e); } /// @@ -104,6 +110,9 @@ protected override bool ControlPropertiesValid() String.Format("Unable to find control id '{0}' referenced by the '{1}' property of '{2}'.", name, propertyName, ID) ); + // Add Validation for CheckBox + if (_isCheckBox = (c is WebControls.CheckBox && !(c is WebControls.RadioButton))) return; + // Add Validation for CheckBoxList if (_isCheckBoxList = c is WebControls.CheckBoxList) return; @@ -130,7 +139,13 @@ protected override void AddAttributesToRender(HtmlTextWriter writer) AddExpandoAttribute(expandoAttributeWriter, id, "evaluationfunction", "RequiredFieldValidatorEvaluateIsValid", false); AddExpandoAttribute(expandoAttributeWriter, id, "initialvalue", InitialValue); - AddExpandoAttribute(expandoAttributeWriter, id, "ischeckboxlist", _isCheckBoxList ? "true" : "false"); + AddExpandoAttribute(expandoAttributeWriter, id, "validatefor", + _isCheckBox + ? "checkbox" + : _isCheckBoxList + ? "checkboxlist" + : "default" + ); } } /// @@ -142,12 +157,16 @@ protected override bool EvaluateIsValid() string controlValue = GetControlValidationValue(ControlToValidate); if (controlValue == null) { - // Provide Validation for CheckBoxList. Value check isn't provided by JavaScript and can't be provide. - if (_isCheckBoxList) { + // Provide Validation for CheckBox. + if (_isCheckBox) { + return ((WebControls.CheckBox)NamingContainer.FindControl(ControlToValidate)).Checked; + } + // Provide Validation for CheckBoxList. + else if (_isCheckBoxList) { WebControls.CheckBoxList c = (WebControls.CheckBoxList)NamingContainer.FindControl(ControlToValidate); foreach (WebControls.ListItem item in c.Items) - if (item.Selected && !item.Value.Trim().Equals(InitialValue.Trim())) + if (item.Selected) return true; return false; diff --git a/README.md b/README.md index 8185089..185a487 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Dado Validators is an extension of the System.Web.UI.WebControls.BaseValidator c Require Field:
- Makes the associated input control a required field. Added support for CheckBoxLists. + Makes the associated input control a required field. Added support for CheckBox and CheckBoxLists. diff --git a/Release/DadoValidatorsAssembly-v0.7.0.0.zip b/Release/DadoValidatorsAssembly-v0.7.0.0.zip index 244096d..176694f 100644 Binary files a/Release/DadoValidatorsAssembly-v0.7.0.0.zip and b/Release/DadoValidatorsAssembly-v0.7.0.0.zip differ diff --git a/Web/default.aspx b/Web/default.aspx index 0e5871d..1caa663 100644 --- a/Web/default.aspx +++ b/Web/default.aspx @@ -127,6 +127,14 @@ + + CheckBox Validator: + + + + + + diff --git a/Web/default.aspx.designer.cs b/Web/default.aspx.designer.cs index 9340a70..d456c71 100644 --- a/Web/default.aspx.designer.cs +++ b/Web/default.aspx.designer.cs @@ -156,6 +156,15 @@ public partial class Default { /// protected global::System.Web.UI.WebControls.RadioButtonList rblRadioButtonList; + /// + /// ckbCheckBox control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox ckbCheckBox; + /// /// btnSubmit control. /// diff --git a/Website Framework.v11.suo b/Website Framework.v11.suo index 20a506f..5810baf 100644 Binary files a/Website Framework.v11.suo and b/Website Framework.v11.suo differ