docs: function () {
              this._hasFocus = false;
              this._updateState();
              if (this._cfg.formatError && this._cfg.validationEvent === 'onBlur') {// show
                  // errortip on blur used for debug purposes
                  this._validationPopupShow();
              } else { // dispose of error tip
                  this._validationPopupHide();
                  if (this._cfg.directOnBlurValidation) {
                      if (this._cfg.bind) {
                          var bind = this._cfg.bind.value;
                          if (bind) {
                              var dataholder = bind.inside;
                              var name = bind.to;
                              var groups = this._cfg.validationGroups;
                              aria.utils.Data.validateValue(dataholder, name, null, groups, 'onblur');
                          }
                      }
                  }
              }
              this._updateValue(true);
              // _updateValue can change the value in the data model, which could make the widget be disposed
              // (for example during a refresh of a section bound to that part of the data model)
              // That's why we are checking if this._cfg is defined here:
              var onblur = this._cfg ? this._cfg.onblur : null;
              if (onblur) {
                  this.evalCallback(onblur);
              }
          }