title: Ext JS 4.1 - User-defined validation doesn't bind button
body: <p>I defined a validation which controls if the id is unique or not to bind a button. It <strong>works well with built-in validations</strong> well, but <strong>it doesn't bind for my own validation</strong>.</p>
  
  <p>Here's what I've tried:</p>
  
  <p><strong>View - FormPanel:</strong></p>
  
  <pre><code>Ext.define(appName + '.view.user.UserForm', {
      extend: 'Ext.form.Panel',
      requires: [appName + '.view.language.LanguageCombo'],
      alias: 'widget.userform',
      //  title       : 'User Form',
      iconCls: 'icon-form',
      frame: true,
      padding: '5 5 0 5',
      border: true,
      buttonAlign: 'right',
      width: '100%',
      //    height    : 200,
      monitorValid: true,
      bodyPadding: 10,
      fieldDefaults: {
          labelAlign: 'left',
          labelWidth: 110,
          anchor: '98%',
          allowBlank: false,
          selectOnFocus: true,
          msgTarget: 'side'
      },
      initComponent: function () {
          var me = this;
  
  
          this.title = bundle.getMsg('userform.title');
  
  
          this.items = [{
              xtype: 'numberfield',
              minValue: 1,
              fieldLabel: bundle.getMsg('userform.field.recordId'),
              name: 'recordId',
              itemId: 'recordId'
          }, {
           ];
  
  
          this.btnReset = Ext.create('Ext.ux.button.ResetButton', {
              handler: function (btn) {
                  me.getForm().reset();
              }
          });
  
  
          this.btnSubmit = Ext.create('Ext.ux.button.SaveButton', {
              disabled: true, 
              formBind: true
          });
  
  
          this.buttons = [me.btnReset, me.btnSubmit];
  
  
          this.callParent(arguments);
      }
  });
  </code></pre>
  
  <p><strong>Controller Method:</strong></p>
  
  <pre><code>var form = this.getUserForm();
  if (field.getValue() &amp;&amp; field.getValue() != '') {
      Ext.Ajax.request({
          url: 'user/chkRecordIdUnique.ajax',
          method: 'POST',
          params: {
              recordId: field.getValue()
          },
          success: function (response, options) {
              var res = Ext.decode(response.responseText);
              if (!res.success) {
                  field.markInvalid(bundle.getMsg('record.taken'));
                  form.getForm().markInvalid(bundle.getMsg('record.taken'));
              }
          }
      });
  }
  </code></pre>