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 now supports specifying a delimiter using the data-delimiter option so you no longer need to hack it:
f.autocomplete_field :tags, autocomplete_tag_business_path, :"data-delimiter" => ','
I discovered it while trying to apply the hack above and discovered it isn't necessary. Works great for me!
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!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With