2010-08-01 6 views
5

J'ai utiliser rails3-jquery-autocomplete plugin et je me demandais comment je peux l'utiliser pour faire plusieurs mots autocomplete.comment utiliser rails3-jquery-autocomplete plugin pour plusieurs mots autocomplete

par exemple. INPUT rails, gem devrait générer une liste automatique deux fois.

Comment résoudre ce problème? ..

+0

Pouvez-vous poster du code que vous avez déjà essayé? et alors qu'est-ce qui ne va pas avec la sortie? –

+0

Avez-vous besoin d'utiliser un plugin pour rails? Je suppose qu'il serait plus simple d'ajouter jquery-ui plugin à vos javascripts et de l'installer dans javascripts. – skalee

Répondre

6

plugin rails3-jquery-autocomplete? Il semble qu'il ne supporte pas la saisie semi-automatique multiple, vous devez modifier le code du plugin !! Si vous insistez sur vos anciennes idées, suivez mes pas.

  1. run bundle show rails3-jquery-autocomplete pour obtenir le plugin de travail directroy
  2. compagnon /lib/autocomplete.rb
  3. modifier le define_method comme ceci:

    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) 
    

    fin

  4. modifier comme autocomplete-rails.js cette 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; } }); }); });

  5. redémarrer votre serveur et essayez

!! rappelez-vous que vous feriez mieux de sauvegarder autocomplete.rb pour éviter l'écrasement après l'exécution de l'installation du bundle.

Bonne chance!

14

rails3-jquery-autocomplete prend désormais en charge la spécification d'un séparateur en utilisant l'option delimiter de données afin que vous n'avez plus besoin de le pirater:

f.autocomplete_field: tags, autocomplete_tag_business_path,: "données delimiter" => ''

Je l'ai découvert en essayant d'appliquer le hack ci-dessus et j'ai découvert que ce n'était pas nécessaire. Fonctionne très bien pour moi!

Questions connexes