I\'m making a \"token input\" style checkbox with an autocomplete (user types in something, selects a response, which adds a \"token\" to the DOM view).
Using jQuery
The answer provided by Andrew causes the ADD NEW button to remain, even if the user then selects an existing item from the array instead of adding "new" !!!
Instead of included a toggle on the 'add' button, there's a built in .change function within autocomplete which can be used.
Although "Change" waits until the text box loses focus, this can be a better interface to then show the ADD BUTTON if there isn't a match to the array. (or could create a "confirm" of adding).
See alternative code which actually hides the "Add Button" again if the user selects from the array. Something which Andrew Whitaker's solution doesn't do :
$(function () {
var source = ["Apples", "Oranges", "Bananas"];
$("#auto").autocomplete({
source: function (request, response) {
var result = $.ui.autocomplete.filter(source, request.term);
response(result);
},
change: function( event, ui ) {
var $label = $(this);
// figure out the id of hidden input box from label id
var $id = $('#'+this.id.replace('label_','id_'));
if ( ui.item === null && $label.val() != '' ){
$("#add").show();
}
if( ui.item != null && $label.val() != '' ){
$("#add").hide();
}
}
});
$("#add").on("click", function () {
source.push($("#auto").val());
$(this).hide();
});
});
See my revised Fiddle in action - http://jsfiddle.net/VLLuJ/25/