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

      @_.max

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

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

  disabled: (disable) ->


  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)
