devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
102 lines (86 loc) • 2.7 kB
JavaScript
var $ = require("../core/renderer"),
registerComponent = require("../core/component_registrator"),
DOMComponent = require("../core/dom_component"),
ValidationSummary = require("./validation_summary"),
ValidationEngine = require("./validation_engine"),
Validator = require("./validator");
var VALIDATION_ENGINE_CLASS = "dx-validationgroup";
/**
* @name dxValidationGroup
* @publicName dxValidationGroup
* @inherits DOMComponent
* @module ui/validation_group
* @export default
*/
var ValidationGroup = DOMComponent.inherit({
_getDefaultOptions: function _getDefaultOptions() {
return this.callBase();
/**
* @name dxValidationGroupOptions.rtlEnabled
* @publicName rtlEnabled
* @hidden
* @inheritdoc
*/
/**
* @name dxValidationGroupMethods.beginUpdate
* @publicName beginUpdate()
* @hidden
* @inheritdoc
*/
/**
* @name dxValidationGroupMethods.defaultOptions
* @publicName defaultOptions(rule)
* @hidden
* @inheritdoc
*/
/**
* @name dxValidationGroupMethods.endUpdate
* @publicName endUpdate()
* @hidden
* @inheritdoc
*/
},
_init: function _init() {
this.callBase();
},
_initMarkup: function _initMarkup() {
var $element = this.$element();
$element.addClass(VALIDATION_ENGINE_CLASS);
$element.find(".dx-validator").each(function (_, validatorContainer) {
Validator.getInstance($(validatorContainer))._initGroupRegistration();
});
$element.find(".dx-validationsummary").each(function (_, summaryContainer) {
ValidationSummary.getInstance($(summaryContainer))._initGroupRegistration();
});
this.callBase();
},
/**
* @name dxValidationGroupMethods.validate
* @publicName validate()
* @return dxValidationGroupResult
*/
validate: function validate() {
return ValidationEngine.validateGroup(this);
},
/**
* @name dxValidationGroupMethods.reset
* @publicName reset()
*/
reset: function reset() {
return ValidationEngine.resetGroup(this);
},
_optionChanged: function _optionChanged(args) {
switch (args.name) {
default:
this.callBase(args);
}
},
_dispose: function _dispose() {
ValidationEngine.removeGroup(this);
this.$element().removeClass(VALIDATION_ENGINE_CLASS);
this.callBase();
}
});
registerComponent("dxValidationGroup", ValidationGroup);
module.exports = ValidationGroup;
;