Tokeninput is a jQuery plugin which allows your users to select multiple items from a predefined list, using autocompletion as they type to find each item. You may have seen a similar type of text entry when filling in the recipients field sending messages on facebook. This fork include an option 'allowCustomEntry' that allow the user to write any string and create a token from it. In the base version you can only select items from the list or the REST service which fetch the results; in that forked version you can write any string you like and it will be addedd to the list. This can be useful if you need a tag folksonomy field for example, where you show the user the most popular tags in the list but he can always create a new one.
Full details and documentation can be found on the project page here: