       else
         this.setValueAndToggleClass(@field.attr('placeholder'))
 
+  # This stores a reference to this object into `@field` and register observers on focus & blur.
+  #
+  # @private
+  #
+  storeSelfReferenceAndObservers: ->
+    @field.data('pseudoPlaceholderObject', this)
+    @field.on('focus', this.clearPseudoPlaceholder)
+    @field.on('blur',  this.setupPseudoPlaceholder)
+
   # This method clear the value and class of the field if its value is equal to the placeholder.
   #
   # @note It automatically replaces the field with a password field if needed.

    else
      @field.addClass('placeholder')

  # This stores a reference to this object into `@field` and register observers on focus & blur.
  #
  # @private
  #
  storeSelfReferenceAndObservers: ->
    @field.data('pseudoPlaceholderObject', this)
    @field.on 'focus', this.clearPseudoPlaceholder
    @field.on 'blur',  this.setupPseudoPlaceholder

  # Copy 'placeholder' attribute to 'value' attribute if it's empty.
  #
  # @note If it's a password field this will also take care to initially

  # @private
  #
  clearPseudoPlaceholder: =>
    if @field.val() is @field.attr('placeholder')
      this.setValueAndToggleClass('')

      if @field.data('showPasswordObject')
