code: function( el, e ) {
        var ajaxOptions = {},
          data = {},
          fieldName = el.name || el.id;
  
        if ( typeof this.remoteCache === 'undefined' ) this.remoteCache = {};
  
        data[ fieldName ] = this.tmp.val; // Set data
        // exends ajax options
        ajaxOptions = $.extend( true, {}, {
          data: data
        }, this.options.validators.remote[ this.tmp.remote ] || {} );
  
        // use $.param() function for generate specific cache key
        var cacheKey = $.param( ajaxOptions );
  
        // Check cache
        var cache = this.remoteCache[ cacheKey ];
  
        if ( typeof cache !== 'undefined' ) {
          switch( cache.state ) {
            case 'pending' : // pending means remote request not finished yet
              this.handler = 'pending'; // update handler and cache event type
              cache.event = e.type;
              break;
            case 'rejected' : // rejected means remote request could not be performed
              e.preventDefault(); // we have to break submit because of throw error
              throw new Error( cache.result.message );
            case 'resolved' : // resolved means remote request has done
              // Check to cache, if result is invalid, open an error window
              if ( cache.result.valid === false ) {
                this.addErrorClass( this.tmp.parent );
                this.window.open.call( this, el, cache.result.message );
              } else {
                this.addValidClass( this.tmp.parent );
              }
          }
        } else {
          // Abort if previous ajax request still running
          var _xhr = this.xhr[ fieldName ];
          if ( typeof _xhr !== 'undefined' && _xhr.state() === 'pending' ) _xhr.abort();
          // Start caching
          cache = this.remoteCache[ cacheKey ] = { state : 'pending', event : e.type };
          // make a remote request
          this.remoteRequest( ajaxOptions, cache, el, fieldName );
        }
      }
docs: Checks remote validations
  
  @param  {object} el current field
  @param  {object} e event object
  @throws {error} If previous remote request for same value has rejected
  @return {void}