Seems like the real change that's needed to their onSelect() method is "that.el.val(.....)" because in this case we don't want to replace the entire text input value with the selection. We should pass a flag into the autocomplete that changes the state where it doesn't replace the entire contents with the selection, it instead inserts it wherever the cursor is. 

You probably want to replace "that.el.val(that.currentValue);" with a custom method that uses this flag and sets the input accordingly. Just like we have the "that.text()" method above which gets the value of the input, we should have one that sets the value of the input. It can also do the same check of whether the input is a contenteditable input or not (in which case you probably don't use .val()). We should replace all references to "that.el.val()" with this new method.