Hi, I have use rails3-jquery-autocomplete plugin and I am just wondering how can I use it to do multiple words autocomplete.
e.g. INPUT rails, gem it should generate auto-list twice.
How to solve this problem?..
Hi, I have use rails3-jquery-autocomplete plugin and I am just wondering how can I use it to do multiple words autocomplete.
e.g. INPUT rails, gem it should generate auto-list twice.
How to solve this problem?..
rails3-jquery-autocomplete plugin? It seems that it doesn't support multiple autocomplete, you need to modify the plugin code!! If you insist on your former ideas, follow my steps.
bundle show rails3-jquery-autocomplete
to get the plugin working directroymodify the define_method
like this:
define_method("autocomplete_#{object}_#{method}") do
arr = params[:term].split(",")
unless params[:term] && params[:term].empty?
items = object.to_s.camelize.constantize.where(["LOWER(#{method}) LIKE ?", "#{arr[arr.size-1]}%"]).limit(limit).order(order)
else
items = {}
end
render :json => json_for_autocomplete(items, method)
end
modify autocomplete-rails.js
like this
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
$(document).ready(function(){
$('input[autocomplete]').each(function(i){
$(this).autocomplete({
source: $(this).attr('autocomplete'),
focus: function() {
return false;
},
select: function(event, ui) {
var terms = split( this.value );
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join(",");
return false;
}
});
});
});
restart your server and try
!! remember you'd better backup autocomplete.rb to avoid overwrite after you run bundle install.
Good luck!