 
             elem.on 'keydown', (event) ->
               keycode = event.which
-              killEvent(event) unless keycode == 37 || keycode == 39
+              killEvent(event) unless keycode == 37 || keycode == 39 || keycode == 9
 
               return if invalidInput(elem, event)
               # unless isControlKey(keycode)

                  insertCharacter(elem, event)
                  elem.val resetCommas(elem.val()) # reformat the number in place
                  elem[0].setSelectionRange(newCursorPosition, newCursorPosition) # set the new cursor position

              if keycode == 8 # backspace is pressed
                unless elem[0].selectionStart == 0 # do nothing if it's at the end of the end of the input

    killEvent = (event) ->
      event.preventDefault()
      event.stopPropagation()

    triggerChange = (elem) ->
      elem.trigger("change")

    # helper methods for finding the new cursor position based on input type
    findNewCharacterCursorPosition = (elem, initialPosition) ->
