123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883 |
- //!----------------------------------------------------------
- //! Copyright (C) Microsoft Corporation. All rights reserved.
- //!----------------------------------------------------------
- //! MicrosoftMvcValidation.js
- Type.registerNamespace('Sys.Mvc');
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.Validation
- Sys.Mvc.$create_Validation = function Sys_Mvc_Validation() { return {}; }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.JsonValidationField
- Sys.Mvc.$create_JsonValidationField = function Sys_Mvc_JsonValidationField() { return {}; }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.JsonValidationOptions
- Sys.Mvc.$create_JsonValidationOptions = function Sys_Mvc_JsonValidationOptions() { return {}; }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.JsonValidationRule
- Sys.Mvc.$create_JsonValidationRule = function Sys_Mvc_JsonValidationRule() { return {}; }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.ValidationContext
- Sys.Mvc.$create_ValidationContext = function Sys_Mvc_ValidationContext() { return {}; }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.NumberValidator
- Sys.Mvc.NumberValidator = function Sys_Mvc_NumberValidator() {
- }
- Sys.Mvc.NumberValidator.create = function Sys_Mvc_NumberValidator$create(rule) {
- /// <param name="rule" type="Sys.Mvc.JsonValidationRule">
- /// </param>
- /// <returns type="Sys.Mvc.Validator"></returns>
- return Function.createDelegate(new Sys.Mvc.NumberValidator(), new Sys.Mvc.NumberValidator().validate);
- }
- Sys.Mvc.NumberValidator.prototype = {
-
- validate: function Sys_Mvc_NumberValidator$validate(value, context) {
- /// <param name="value" type="String">
- /// </param>
- /// <param name="context" type="Sys.Mvc.ValidationContext">
- /// </param>
- /// <returns type="Object"></returns>
- if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
- return true;
- }
- var n = Number.parseLocale(value);
- return (!isNaN(n));
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.FormContext
- Sys.Mvc.FormContext = function Sys_Mvc_FormContext(formElement, validationSummaryElement) {
- /// <param name="formElement" type="Object" domElement="true">
- /// </param>
- /// <param name="validationSummaryElement" type="Object" domElement="true">
- /// </param>
- /// <field name="_validationSummaryErrorCss" type="String" static="true">
- /// </field>
- /// <field name="_validationSummaryValidCss" type="String" static="true">
- /// </field>
- /// <field name="_formValidationTag" type="String" static="true">
- /// </field>
- /// <field name="_onClickHandler" type="Sys.UI.DomEventHandler">
- /// </field>
- /// <field name="_onSubmitHandler" type="Sys.UI.DomEventHandler">
- /// </field>
- /// <field name="_errors" type="Array">
- /// </field>
- /// <field name="_submitButtonClicked" type="Object" domElement="true">
- /// </field>
- /// <field name="_validationSummaryElement" type="Object" domElement="true">
- /// </field>
- /// <field name="_validationSummaryULElement" type="Object" domElement="true">
- /// </field>
- /// <field name="fields" type="Array" elementType="FieldContext">
- /// </field>
- /// <field name="_formElement" type="Object" domElement="true">
- /// </field>
- /// <field name="replaceValidationSummary" type="Boolean">
- /// </field>
- this._errors = [];
- this.fields = new Array(0);
- this._formElement = formElement;
- this._validationSummaryElement = validationSummaryElement;
- formElement[Sys.Mvc.FormContext._formValidationTag] = this;
- if (validationSummaryElement) {
- var ulElements = validationSummaryElement.getElementsByTagName('ul');
- if (ulElements.length > 0) {
- this._validationSummaryULElement = ulElements[0];
- }
- }
- this._onClickHandler = Function.createDelegate(this, this._form_OnClick);
- this._onSubmitHandler = Function.createDelegate(this, this._form_OnSubmit);
- }
- Sys.Mvc.FormContext._Application_Load = function Sys_Mvc_FormContext$_Application_Load() {
- var allFormOptions = window.mvcClientValidationMetadata;
- if (allFormOptions) {
- while (allFormOptions.length > 0) {
- var thisFormOptions = allFormOptions.pop();
- Sys.Mvc.FormContext._parseJsonOptions(thisFormOptions);
- }
- }
- }
- Sys.Mvc.FormContext._getFormElementsWithName = function Sys_Mvc_FormContext$_getFormElementsWithName(formElement, name) {
- /// <param name="formElement" type="Object" domElement="true">
- /// </param>
- /// <param name="name" type="String">
- /// </param>
- /// <returns type="Array" elementType="Object" elementDomElement="true"></returns>
- var allElementsWithNameInForm = [];
- var allElementsWithName = document.getElementsByName(name);
- for (var i = 0; i < allElementsWithName.length; i++) {
- var thisElement = allElementsWithName[i];
- if (Sys.Mvc.FormContext._isElementInHierarchy(formElement, thisElement)) {
- Array.add(allElementsWithNameInForm, thisElement);
- }
- }
- return allElementsWithNameInForm;
- }
- Sys.Mvc.FormContext.getValidationForForm = function Sys_Mvc_FormContext$getValidationForForm(formElement) {
- /// <param name="formElement" type="Object" domElement="true">
- /// </param>
- /// <returns type="Sys.Mvc.FormContext"></returns>
- return formElement[Sys.Mvc.FormContext._formValidationTag];
- }
- Sys.Mvc.FormContext._isElementInHierarchy = function Sys_Mvc_FormContext$_isElementInHierarchy(parent, child) {
- /// <param name="parent" type="Object" domElement="true">
- /// </param>
- /// <param name="child" type="Object" domElement="true">
- /// </param>
- /// <returns type="Boolean"></returns>
- while (child) {
- if (parent === child) {
- return true;
- }
- child = child.parentNode;
- }
- return false;
- }
- Sys.Mvc.FormContext._parseJsonOptions = function Sys_Mvc_FormContext$_parseJsonOptions(options) {
- /// <param name="options" type="Sys.Mvc.JsonValidationOptions">
- /// </param>
- /// <returns type="Sys.Mvc.FormContext"></returns>
- var formElement = $get(options.FormId);
- var validationSummaryElement = (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(options.ValidationSummaryId)) ? $get(options.ValidationSummaryId) : null;
- var formContext = new Sys.Mvc.FormContext(formElement, validationSummaryElement);
- formContext.enableDynamicValidation();
- formContext.replaceValidationSummary = options.ReplaceValidationSummary;
- for (var i = 0; i < options.Fields.length; i++) {
- var field = options.Fields[i];
- var fieldElements = Sys.Mvc.FormContext._getFormElementsWithName(formElement, field.FieldName);
- var validationMessageElement = (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(field.ValidationMessageId)) ? $get(field.ValidationMessageId) : null;
- var fieldContext = new Sys.Mvc.FieldContext(formContext);
- Array.addRange(fieldContext.elements, fieldElements);
- fieldContext.validationMessageElement = validationMessageElement;
- fieldContext.replaceValidationMessageContents = field.ReplaceValidationMessageContents;
- for (var j = 0; j < field.ValidationRules.length; j++) {
- var rule = field.ValidationRules[j];
- var validator = Sys.Mvc.ValidatorRegistry.getValidator(rule);
- if (validator) {
- var validation = Sys.Mvc.$create_Validation();
- validation.fieldErrorMessage = rule.ErrorMessage;
- validation.validator = validator;
- Array.add(fieldContext.validations, validation);
- }
- }
- fieldContext.enableDynamicValidation();
- Array.add(formContext.fields, fieldContext);
- }
- var registeredValidatorCallbacks = formElement.validationCallbacks;
- if (!registeredValidatorCallbacks) {
- registeredValidatorCallbacks = [];
- formElement.validationCallbacks = registeredValidatorCallbacks;
- }
- registeredValidatorCallbacks.push(Function.createDelegate(null, function() {
- return Sys.Mvc._validationUtil.arrayIsNullOrEmpty(formContext.validate('submit'));
- }));
- return formContext;
- }
- Sys.Mvc.FormContext.prototype = {
- _onClickHandler: null,
- _onSubmitHandler: null,
- _submitButtonClicked: null,
- _validationSummaryElement: null,
- _validationSummaryULElement: null,
- _formElement: null,
- replaceValidationSummary: false,
-
- addError: function Sys_Mvc_FormContext$addError(message) {
- /// <param name="message" type="String">
- /// </param>
- this.addErrors([ message ]);
- },
-
- addErrors: function Sys_Mvc_FormContext$addErrors(messages) {
- /// <param name="messages" type="Array" elementType="String">
- /// </param>
- if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) {
- Array.addRange(this._errors, messages);
- this._onErrorCountChanged();
- }
- },
-
- clearErrors: function Sys_Mvc_FormContext$clearErrors() {
- Array.clear(this._errors);
- this._onErrorCountChanged();
- },
-
- _displayError: function Sys_Mvc_FormContext$_displayError() {
- if (this._validationSummaryElement) {
- if (this._validationSummaryULElement) {
- Sys.Mvc._validationUtil.removeAllChildren(this._validationSummaryULElement);
- for (var i = 0; i < this._errors.length; i++) {
- var liElement = document.createElement('li');
- Sys.Mvc._validationUtil.setInnerText(liElement, this._errors[i]);
- this._validationSummaryULElement.appendChild(liElement);
- }
- }
- Sys.UI.DomElement.removeCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryValidCss);
- Sys.UI.DomElement.addCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryErrorCss);
- }
- },
-
- _displaySuccess: function Sys_Mvc_FormContext$_displaySuccess() {
- var validationSummaryElement = this._validationSummaryElement;
- if (validationSummaryElement) {
- var validationSummaryULElement = this._validationSummaryULElement;
- if (validationSummaryULElement) {
- validationSummaryULElement.innerHTML = '';
- }
- Sys.UI.DomElement.removeCssClass(validationSummaryElement, Sys.Mvc.FormContext._validationSummaryErrorCss);
- Sys.UI.DomElement.addCssClass(validationSummaryElement, Sys.Mvc.FormContext._validationSummaryValidCss);
- }
- },
-
- enableDynamicValidation: function Sys_Mvc_FormContext$enableDynamicValidation() {
- Sys.UI.DomEvent.addHandler(this._formElement, 'click', this._onClickHandler);
- Sys.UI.DomEvent.addHandler(this._formElement, 'submit', this._onSubmitHandler);
- },
-
- _findSubmitButton: function Sys_Mvc_FormContext$_findSubmitButton(element) {
- /// <param name="element" type="Object" domElement="true">
- /// </param>
- /// <returns type="Object" domElement="true"></returns>
- if (element.disabled) {
- return null;
- }
- var tagName = element.tagName.toUpperCase();
- var inputElement = element;
- if (tagName === 'INPUT') {
- var type = inputElement.type;
- if (type === 'submit' || type === 'image') {
- return inputElement;
- }
- }
- else if ((tagName === 'BUTTON') && (inputElement.type === 'submit')) {
- return inputElement;
- }
- return null;
- },
-
- _form_OnClick: function Sys_Mvc_FormContext$_form_OnClick(e) {
- /// <param name="e" type="Sys.UI.DomEvent">
- /// </param>
- this._submitButtonClicked = this._findSubmitButton(e.target);
- },
-
- _form_OnSubmit: function Sys_Mvc_FormContext$_form_OnSubmit(e) {
- /// <param name="e" type="Sys.UI.DomEvent">
- /// </param>
- var form = e.target;
- var submitButton = this._submitButtonClicked;
- if (submitButton && submitButton.disableValidation) {
- return;
- }
- var errorMessages = this.validate('submit');
- if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(errorMessages)) {
- e.preventDefault();
- }
- },
-
- _onErrorCountChanged: function Sys_Mvc_FormContext$_onErrorCountChanged() {
- if (!this._errors.length) {
- this._displaySuccess();
- }
- else {
- this._displayError();
- }
- },
-
- validate: function Sys_Mvc_FormContext$validate(eventName) {
- /// <param name="eventName" type="String">
- /// </param>
- /// <returns type="Array" elementType="String"></returns>
- var fields = this.fields;
- var errors = [];
- for (var i = 0; i < fields.length; i++) {
- var field = fields[i];
- if (!field.elements[0].disabled) {
- var thisErrors = field.validate(eventName);
- if (thisErrors) {
- Array.addRange(errors, thisErrors);
- }
- }
- }
- if (this.replaceValidationSummary) {
- this.clearErrors();
- this.addErrors(errors);
- }
- return errors;
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.FieldContext
- Sys.Mvc.FieldContext = function Sys_Mvc_FieldContext(formContext) {
- /// <param name="formContext" type="Sys.Mvc.FormContext">
- /// </param>
- /// <field name="_hasTextChangedTag" type="String" static="true">
- /// </field>
- /// <field name="_hasValidationFiredTag" type="String" static="true">
- /// </field>
- /// <field name="_inputElementErrorCss" type="String" static="true">
- /// </field>
- /// <field name="_inputElementValidCss" type="String" static="true">
- /// </field>
- /// <field name="_validationMessageErrorCss" type="String" static="true">
- /// </field>
- /// <field name="_validationMessageValidCss" type="String" static="true">
- /// </field>
- /// <field name="_onBlurHandler" type="Sys.UI.DomEventHandler">
- /// </field>
- /// <field name="_onChangeHandler" type="Sys.UI.DomEventHandler">
- /// </field>
- /// <field name="_onInputHandler" type="Sys.UI.DomEventHandler">
- /// </field>
- /// <field name="_onPropertyChangeHandler" type="Sys.UI.DomEventHandler">
- /// </field>
- /// <field name="_errors" type="Array">
- /// </field>
- /// <field name="defaultErrorMessage" type="String">
- /// </field>
- /// <field name="elements" type="Array" elementType="Object" elementDomElement="true">
- /// </field>
- /// <field name="formContext" type="Sys.Mvc.FormContext">
- /// </field>
- /// <field name="replaceValidationMessageContents" type="Boolean">
- /// </field>
- /// <field name="validationMessageElement" type="Object" domElement="true">
- /// </field>
- /// <field name="validations" type="Array" elementType="Validation">
- /// </field>
- this._errors = [];
- this.elements = new Array(0);
- this.validations = new Array(0);
- this.formContext = formContext;
- this._onBlurHandler = Function.createDelegate(this, this._element_OnBlur);
- this._onChangeHandler = Function.createDelegate(this, this._element_OnChange);
- this._onInputHandler = Function.createDelegate(this, this._element_OnInput);
- this._onPropertyChangeHandler = Function.createDelegate(this, this._element_OnPropertyChange);
- }
- Sys.Mvc.FieldContext.prototype = {
- _onBlurHandler: null,
- _onChangeHandler: null,
- _onInputHandler: null,
- _onPropertyChangeHandler: null,
- defaultErrorMessage: null,
- formContext: null,
- replaceValidationMessageContents: false,
- validationMessageElement: null,
-
- addError: function Sys_Mvc_FieldContext$addError(message) {
- /// <param name="message" type="String">
- /// </param>
- this.addErrors([ message ]);
- },
-
- addErrors: function Sys_Mvc_FieldContext$addErrors(messages) {
- /// <param name="messages" type="Array" elementType="String">
- /// </param>
- if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) {
- Array.addRange(this._errors, messages);
- this._onErrorCountChanged();
- }
- },
-
- clearErrors: function Sys_Mvc_FieldContext$clearErrors() {
- Array.clear(this._errors);
- this._onErrorCountChanged();
- },
-
- _displayError: function Sys_Mvc_FieldContext$_displayError() {
- var validationMessageElement = this.validationMessageElement;
- if (validationMessageElement) {
- if (this.replaceValidationMessageContents) {
- Sys.Mvc._validationUtil.setInnerText(validationMessageElement, this._errors[0]);
- }
- Sys.UI.DomElement.removeCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageValidCss);
- Sys.UI.DomElement.addCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageErrorCss);
- }
- var elements = this.elements;
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- Sys.UI.DomElement.removeCssClass(element, Sys.Mvc.FieldContext._inputElementValidCss);
- Sys.UI.DomElement.addCssClass(element, Sys.Mvc.FieldContext._inputElementErrorCss);
- }
- },
-
- _displaySuccess: function Sys_Mvc_FieldContext$_displaySuccess() {
- var validationMessageElement = this.validationMessageElement;
- if (validationMessageElement) {
- if (this.replaceValidationMessageContents) {
- Sys.Mvc._validationUtil.setInnerText(validationMessageElement, '');
- }
- Sys.UI.DomElement.removeCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageErrorCss);
- Sys.UI.DomElement.addCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageValidCss);
- }
- var elements = this.elements;
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- Sys.UI.DomElement.removeCssClass(element, Sys.Mvc.FieldContext._inputElementErrorCss);
- Sys.UI.DomElement.addCssClass(element, Sys.Mvc.FieldContext._inputElementValidCss);
- }
- },
-
- _element_OnBlur: function Sys_Mvc_FieldContext$_element_OnBlur(e) {
- /// <param name="e" type="Sys.UI.DomEvent">
- /// </param>
- if (e.target[Sys.Mvc.FieldContext._hasTextChangedTag] || e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
- this.validate('blur');
- }
- },
-
- _element_OnChange: function Sys_Mvc_FieldContext$_element_OnChange(e) {
- /// <param name="e" type="Sys.UI.DomEvent">
- /// </param>
- e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
- },
-
- _element_OnInput: function Sys_Mvc_FieldContext$_element_OnInput(e) {
- /// <param name="e" type="Sys.UI.DomEvent">
- /// </param>
- e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
- if (e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
- this.validate('input');
- }
- },
-
- _element_OnPropertyChange: function Sys_Mvc_FieldContext$_element_OnPropertyChange(e) {
- /// <param name="e" type="Sys.UI.DomEvent">
- /// </param>
- if (e.rawEvent.propertyName === 'value') {
- e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
- if (e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
- this.validate('input');
- }
- }
- },
-
- enableDynamicValidation: function Sys_Mvc_FieldContext$enableDynamicValidation() {
- var elements = this.elements;
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- if (Sys.Mvc._validationUtil.elementSupportsEvent(element, 'onpropertychange')) {
- var compatMode = document.documentMode;
- if (compatMode && compatMode >= 8) {
- Sys.UI.DomEvent.addHandler(element, 'propertychange', this._onPropertyChangeHandler);
- }
- }
- else {
- Sys.UI.DomEvent.addHandler(element, 'input', this._onInputHandler);
- }
- Sys.UI.DomEvent.addHandler(element, 'change', this._onChangeHandler);
- Sys.UI.DomEvent.addHandler(element, 'blur', this._onBlurHandler);
- }
- },
-
- _getErrorString: function Sys_Mvc_FieldContext$_getErrorString(validatorReturnValue, fieldErrorMessage) {
- /// <param name="validatorReturnValue" type="Object">
- /// </param>
- /// <param name="fieldErrorMessage" type="String">
- /// </param>
- /// <returns type="String"></returns>
- var fallbackErrorMessage = fieldErrorMessage || this.defaultErrorMessage;
- if (Boolean.isInstanceOfType(validatorReturnValue)) {
- return (validatorReturnValue) ? null : fallbackErrorMessage;
- }
- if (String.isInstanceOfType(validatorReturnValue)) {
- return ((validatorReturnValue).length) ? validatorReturnValue : fallbackErrorMessage;
- }
- return null;
- },
-
- _getStringValue: function Sys_Mvc_FieldContext$_getStringValue() {
- /// <returns type="String"></returns>
- var elements = this.elements;
- return (elements.length > 0) ? elements[0].value : null;
- },
-
- _markValidationFired: function Sys_Mvc_FieldContext$_markValidationFired() {
- var elements = this.elements;
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- element[Sys.Mvc.FieldContext._hasValidationFiredTag] = true;
- }
- },
-
- _onErrorCountChanged: function Sys_Mvc_FieldContext$_onErrorCountChanged() {
- if (!this._errors.length) {
- this._displaySuccess();
- }
- else {
- this._displayError();
- }
- },
-
- validate: function Sys_Mvc_FieldContext$validate(eventName) {
- /// <param name="eventName" type="String">
- /// </param>
- /// <returns type="Array" elementType="String"></returns>
- var validations = this.validations;
- var errors = [];
- var value = this._getStringValue();
- for (var i = 0; i < validations.length; i++) {
- var validation = validations[i];
- var context = Sys.Mvc.$create_ValidationContext();
- context.eventName = eventName;
- context.fieldContext = this;
- context.validation = validation;
- var retVal = validation.validator(value, context);
- var errorMessage = this._getErrorString(retVal, validation.fieldErrorMessage);
- if (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(errorMessage)) {
- Array.add(errors, errorMessage);
- }
- }
- this._markValidationFired();
- this.clearErrors();
- this.addErrors(errors);
- return errors;
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.RangeValidator
- Sys.Mvc.RangeValidator = function Sys_Mvc_RangeValidator(minimum, maximum) {
- /// <param name="minimum" type="Number">
- /// </param>
- /// <param name="maximum" type="Number">
- /// </param>
- /// <field name="_minimum" type="Number">
- /// </field>
- /// <field name="_maximum" type="Number">
- /// </field>
- this._minimum = minimum;
- this._maximum = maximum;
- }
- Sys.Mvc.RangeValidator.create = function Sys_Mvc_RangeValidator$create(rule) {
- /// <param name="rule" type="Sys.Mvc.JsonValidationRule">
- /// </param>
- /// <returns type="Sys.Mvc.Validator"></returns>
- var min = rule.ValidationParameters['min'];
- var max = rule.ValidationParameters['max'];
- return Function.createDelegate(new Sys.Mvc.RangeValidator(min, max), new Sys.Mvc.RangeValidator(min, max).validate);
- }
- Sys.Mvc.RangeValidator.prototype = {
- _minimum: null,
- _maximum: null,
-
- validate: function Sys_Mvc_RangeValidator$validate(value, context) {
- /// <param name="value" type="String">
- /// </param>
- /// <param name="context" type="Sys.Mvc.ValidationContext">
- /// </param>
- /// <returns type="Object"></returns>
- if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
- return true;
- }
- var n = Number.parseLocale(value);
- return (!isNaN(n) && this._minimum <= n && n <= this._maximum);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.RegularExpressionValidator
- Sys.Mvc.RegularExpressionValidator = function Sys_Mvc_RegularExpressionValidator(pattern) {
- /// <param name="pattern" type="String">
- /// </param>
- /// <field name="_pattern" type="String">
- /// </field>
- this._pattern = pattern;
- }
- Sys.Mvc.RegularExpressionValidator.create = function Sys_Mvc_RegularExpressionValidator$create(rule) {
- /// <param name="rule" type="Sys.Mvc.JsonValidationRule">
- /// </param>
- /// <returns type="Sys.Mvc.Validator"></returns>
- var pattern = rule.ValidationParameters['pattern'];
- return Function.createDelegate(new Sys.Mvc.RegularExpressionValidator(pattern), new Sys.Mvc.RegularExpressionValidator(pattern).validate);
- }
- Sys.Mvc.RegularExpressionValidator.prototype = {
- _pattern: null,
-
- validate: function Sys_Mvc_RegularExpressionValidator$validate(value, context) {
- /// <param name="value" type="String">
- /// </param>
- /// <param name="context" type="Sys.Mvc.ValidationContext">
- /// </param>
- /// <returns type="Object"></returns>
- if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
- return true;
- }
- var regExp = new RegExp(this._pattern);
- var matches = regExp.exec(value);
- return (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(matches) && matches[0].length === value.length);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.RequiredValidator
- Sys.Mvc.RequiredValidator = function Sys_Mvc_RequiredValidator() {
- }
- Sys.Mvc.RequiredValidator.create = function Sys_Mvc_RequiredValidator$create(rule) {
- /// <param name="rule" type="Sys.Mvc.JsonValidationRule">
- /// </param>
- /// <returns type="Sys.Mvc.Validator"></returns>
- return Function.createDelegate(new Sys.Mvc.RequiredValidator(), new Sys.Mvc.RequiredValidator().validate);
- }
- Sys.Mvc.RequiredValidator._isRadioInputElement = function Sys_Mvc_RequiredValidator$_isRadioInputElement(element) {
- /// <param name="element" type="Object" domElement="true">
- /// </param>
- /// <returns type="Boolean"></returns>
- if (element.tagName.toUpperCase() === 'INPUT') {
- var inputType = (element.type).toUpperCase();
- if (inputType === 'RADIO') {
- return true;
- }
- }
- return false;
- }
- Sys.Mvc.RequiredValidator._isSelectInputElement = function Sys_Mvc_RequiredValidator$_isSelectInputElement(element) {
- /// <param name="element" type="Object" domElement="true">
- /// </param>
- /// <returns type="Boolean"></returns>
- if (element.tagName.toUpperCase() === 'SELECT') {
- return true;
- }
- return false;
- }
- Sys.Mvc.RequiredValidator._isTextualInputElement = function Sys_Mvc_RequiredValidator$_isTextualInputElement(element) {
- /// <param name="element" type="Object" domElement="true">
- /// </param>
- /// <returns type="Boolean"></returns>
- if (element.tagName.toUpperCase() === 'INPUT') {
- var inputType = (element.type).toUpperCase();
- switch (inputType) {
- case 'TEXT':
- case 'PASSWORD':
- case 'FILE':
- return true;
- }
- }
- if (element.tagName.toUpperCase() === 'TEXTAREA') {
- return true;
- }
- return false;
- }
- Sys.Mvc.RequiredValidator._validateRadioInput = function Sys_Mvc_RequiredValidator$_validateRadioInput(elements) {
- /// <param name="elements" type="Array" elementType="Object" elementDomElement="true">
- /// </param>
- /// <returns type="Object"></returns>
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- if (element.checked) {
- return true;
- }
- }
- return false;
- }
- Sys.Mvc.RequiredValidator._validateSelectInput = function Sys_Mvc_RequiredValidator$_validateSelectInput(optionElements) {
- /// <param name="optionElements" type="DOMElementCollection">
- /// </param>
- /// <returns type="Object"></returns>
- for (var i = 0; i < optionElements.length; i++) {
- var element = optionElements[i];
- if (element.selected) {
- if (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(element.value)) {
- return true;
- }
- }
- }
- return false;
- }
- Sys.Mvc.RequiredValidator._validateTextualInput = function Sys_Mvc_RequiredValidator$_validateTextualInput(element) {
- /// <param name="element" type="Object" domElement="true">
- /// </param>
- /// <returns type="Object"></returns>
- return (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(element.value));
- }
- Sys.Mvc.RequiredValidator.prototype = {
-
- validate: function Sys_Mvc_RequiredValidator$validate(value, context) {
- /// <param name="value" type="String">
- /// </param>
- /// <param name="context" type="Sys.Mvc.ValidationContext">
- /// </param>
- /// <returns type="Object"></returns>
- var elements = context.fieldContext.elements;
- if (!elements.length) {
- return true;
- }
- var sampleElement = elements[0];
- if (Sys.Mvc.RequiredValidator._isTextualInputElement(sampleElement)) {
- return Sys.Mvc.RequiredValidator._validateTextualInput(sampleElement);
- }
- if (Sys.Mvc.RequiredValidator._isRadioInputElement(sampleElement)) {
- return Sys.Mvc.RequiredValidator._validateRadioInput(elements);
- }
- if (Sys.Mvc.RequiredValidator._isSelectInputElement(sampleElement)) {
- return Sys.Mvc.RequiredValidator._validateSelectInput((sampleElement).options);
- }
- return true;
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.StringLengthValidator
- Sys.Mvc.StringLengthValidator = function Sys_Mvc_StringLengthValidator(minLength, maxLength) {
- /// <param name="minLength" type="Number" integer="true">
- /// </param>
- /// <param name="maxLength" type="Number" integer="true">
- /// </param>
- /// <field name="_maxLength" type="Number" integer="true">
- /// </field>
- /// <field name="_minLength" type="Number" integer="true">
- /// </field>
- this._minLength = minLength;
- this._maxLength = maxLength;
- }
- Sys.Mvc.StringLengthValidator.create = function Sys_Mvc_StringLengthValidator$create(rule) {
- /// <param name="rule" type="Sys.Mvc.JsonValidationRule">
- /// </param>
- /// <returns type="Sys.Mvc.Validator"></returns>
- var minLength = (rule.ValidationParameters['min'] || 0);
- var maxLength = (rule.ValidationParameters['max'] || Number.MAX_VALUE);
- return Function.createDelegate(new Sys.Mvc.StringLengthValidator(minLength, maxLength), new Sys.Mvc.StringLengthValidator(minLength, maxLength).validate);
- }
- Sys.Mvc.StringLengthValidator.prototype = {
- _maxLength: 0,
- _minLength: 0,
-
- validate: function Sys_Mvc_StringLengthValidator$validate(value, context) {
- /// <param name="value" type="String">
- /// </param>
- /// <param name="context" type="Sys.Mvc.ValidationContext">
- /// </param>
- /// <returns type="Object"></returns>
- if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
- return true;
- }
- return (this._minLength <= value.length && value.length <= this._maxLength);
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc._validationUtil
- Sys.Mvc._validationUtil = function Sys_Mvc__validationUtil() {
- }
- Sys.Mvc._validationUtil.arrayIsNullOrEmpty = function Sys_Mvc__validationUtil$arrayIsNullOrEmpty(array) {
- /// <param name="array" type="Array" elementType="Object">
- /// </param>
- /// <returns type="Boolean"></returns>
- return (!array || !array.length);
- }
- Sys.Mvc._validationUtil.stringIsNullOrEmpty = function Sys_Mvc__validationUtil$stringIsNullOrEmpty(value) {
- /// <param name="value" type="String">
- /// </param>
- /// <returns type="Boolean"></returns>
- return (!value || !value.length);
- }
- Sys.Mvc._validationUtil.elementSupportsEvent = function Sys_Mvc__validationUtil$elementSupportsEvent(element, eventAttributeName) {
- /// <param name="element" type="Object" domElement="true">
- /// </param>
- /// <param name="eventAttributeName" type="String">
- /// </param>
- /// <returns type="Boolean"></returns>
- return (eventAttributeName in element);
- }
- Sys.Mvc._validationUtil.removeAllChildren = function Sys_Mvc__validationUtil$removeAllChildren(element) {
- /// <param name="element" type="Object" domElement="true">
- /// </param>
- while (element.firstChild) {
- element.removeChild(element.firstChild);
- }
- }
- Sys.Mvc._validationUtil.setInnerText = function Sys_Mvc__validationUtil$setInnerText(element, innerText) {
- /// <param name="element" type="Object" domElement="true">
- /// </param>
- /// <param name="innerText" type="String">
- /// </param>
- var textNode = document.createTextNode(innerText);
- Sys.Mvc._validationUtil.removeAllChildren(element);
- element.appendChild(textNode);
- }
- ////////////////////////////////////////////////////////////////////////////////
- // Sys.Mvc.ValidatorRegistry
- Sys.Mvc.ValidatorRegistry = function Sys_Mvc_ValidatorRegistry() {
- /// <field name="validators" type="Object" static="true">
- /// </field>
- }
- Sys.Mvc.ValidatorRegistry.getValidator = function Sys_Mvc_ValidatorRegistry$getValidator(rule) {
- /// <param name="rule" type="Sys.Mvc.JsonValidationRule">
- /// </param>
- /// <returns type="Sys.Mvc.Validator"></returns>
- var creator = Sys.Mvc.ValidatorRegistry.validators[rule.ValidationType];
- return (creator) ? creator(rule) : null;
- }
- Sys.Mvc.ValidatorRegistry._getDefaultValidators = function Sys_Mvc_ValidatorRegistry$_getDefaultValidators() {
- /// <returns type="Object"></returns>
- return { required: Function.createDelegate(null, Sys.Mvc.RequiredValidator.create), length: Function.createDelegate(null, Sys.Mvc.StringLengthValidator.create), regex: Function.createDelegate(null, Sys.Mvc.RegularExpressionValidator.create), range: Function.createDelegate(null, Sys.Mvc.RangeValidator.create), number: Function.createDelegate(null, Sys.Mvc.NumberValidator.create) };
- }
- Sys.Mvc.NumberValidator.registerClass('Sys.Mvc.NumberValidator');
- Sys.Mvc.FormContext.registerClass('Sys.Mvc.FormContext');
- Sys.Mvc.FieldContext.registerClass('Sys.Mvc.FieldContext');
- Sys.Mvc.RangeValidator.registerClass('Sys.Mvc.RangeValidator');
- Sys.Mvc.RegularExpressionValidator.registerClass('Sys.Mvc.RegularExpressionValidator');
- Sys.Mvc.RequiredValidator.registerClass('Sys.Mvc.RequiredValidator');
- Sys.Mvc.StringLengthValidator.registerClass('Sys.Mvc.StringLengthValidator');
- Sys.Mvc._validationUtil.registerClass('Sys.Mvc._validationUtil');
- Sys.Mvc.ValidatorRegistry.registerClass('Sys.Mvc.ValidatorRegistry');
- Sys.Mvc.FormContext._validationSummaryErrorCss = 'validation-summary-errors';
- Sys.Mvc.FormContext._validationSummaryValidCss = 'validation-summary-valid';
- Sys.Mvc.FormContext._formValidationTag = '__MVC_FormValidation';
- Sys.Mvc.FieldContext._hasTextChangedTag = '__MVC_HasTextChanged';
- Sys.Mvc.FieldContext._hasValidationFiredTag = '__MVC_HasValidationFired';
- Sys.Mvc.FieldContext._inputElementErrorCss = 'input-validation-error';
- Sys.Mvc.FieldContext._inputElementValidCss = 'input-validation-valid';
- Sys.Mvc.FieldContext._validationMessageErrorCss = 'field-validation-error';
- Sys.Mvc.FieldContext._validationMessageValidCss = 'field-validation-valid';
- Sys.Mvc.ValidatorRegistry.validators = Sys.Mvc.ValidatorRegistry._getDefaultValidators();
- // ---- Do not remove this footer ----
- // Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
- // -----------------------------------
- // register validation
- Sys.Application.add_load(function() {
- Sys.Application.remove_load(arguments.callee);
- Sys.Mvc.FormContext._Application_Load();
- });
|