     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) ->

                  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


            elem.on 'keydown', (event) ->
              keycode = event.which
              killEvent(event) unless keycode == 37 || keycode == 39 || keycode == 9

              return if invalidInput(elem, event)
              # unless isControlKey(keycode)
