code: function( ajaxOptions, cache, el, fieldName, e ) {
  
        var self = this;
  
        $( this.tmp.parent ).addClass('validetta-pending');
  
        // cache xhr
        this.xhr[ fieldName ] = $.ajax( ajaxOptions )
          .done( function( result ) {
            if( typeof result !== 'object' ) result = JSON.parse( result );
            cache.state = 'resolved';
            cache.result = result;
            if ( cache.event === 'submit' ) {
              self.handler = false;
              $( self.form ).trigger('submit');
            }
            else if( result.valid === false ) {
              self.addErrorClass( self.tmp.parent );
              self.window.open.call( self, el, result.message );
            } else {
              self.addValidClass( self.tmp.parent );
            }
          } )
          .fail( function( jqXHR, textStatus ) {
            if ( textStatus !== 'abort' ) { // Dont throw error if request is aborted
              var _msg = 'Ajax request failed for field ('+ fieldName +') : '+ jqXHR.status +' '+ jqXHR.statusText;
              cache.state = 'rejected';
              cache.result = { valid : false, message : _msg };
              throw new Error( _msg );
            }
          } )
          .always( function( result ) { $( self.tmp.parent ).removeClass('validetta-pending'); } );
  
        this.handler = 'pending';
      }
docs: Calls ajax request for remote validations
  
  @param  {object} ajaxOptions Ajax options
  @param  {object} cache Cache object
  @param  {object} el processing element
  @param  {string} fieldName Field name for make specific caching
  @param  {object} e Event object