 
   value: (value, screenValue) ->
     if arguments.length > 0
+      prevValue = @value()
       if @_.max isnt undefined and value > @_.max then value = @_.max
       if @_.min isnt undefined and value < @_.min then value = @_.min
       if screenValue and isNaN(screenValue)

      @_.max

  increment: ->
    @value(@value() + 1)
    @emit 'increment'
    this

  decrement: ->
    @value(@value() - 1)
    @emit 'decrement'
    this

  disabled: (disable) ->

      @selectInput.value(screenValue or value)
      @selectInput.attr('data-value', value)

      if prevValue isnt value
        @emit 'change', {value: value}
      this
    else
      Number(@selectInput.attr('data-value'))
