0

オートコンプリートの項目のドロップダウンリストに、オートコンプリートのテキストフィールドに何もないときに、特定のテーブルのすべての項目が自動的に設定されます。この機能が必要な場合を除いて、すべてが完璧に機能します。rails3-jquery-autocomplete初期フォーカスにドロップダウンを設定する

私が試してみた:

#activity_nameがautocomplete_field_tagある
$('#activity_name').focus(function() { 
    if (!$(this).val() || $(this).val() == '') { 
    $(this).val('%'); 
    $(this).trigger("focus"); 
    } 
}) 

を。フィールドから最初にフォーカスを当てたときに表内のすべての項目を表示しようとしていることがわかります。

私はautocomplete_rails.jsファイルを2+の文字の代わりに1+の文字を使用するように変更しました。したがって、単に%文字で照会する必要があります(テキストフィールドに%を入力するだけで確認できます) 。任意の洞察力をいただければ幸いです

search: function() { 
    var a = c(this.value); 
    if (a.length < 1) return ! 1 
}, 

ここで私はautocomplete_rails.jsに変更したコードです。

+0

何が問題なのですか?何か間違いはありますか? – corroded

+0

エラーはありません。私はテーブルからのすべてのアイテムでドロップダウンをフォーカスに合わせて表示する方法を理解できません。今は、text_fieldが自動的に '%'でフォーカスしていますが、ドロップダウンは表示されません。検索を呼び出すためにキーを押す必要があるようですが、autocomplete_rails.jsファイルにはkeypressリスナーはありません。 – Ali

答えて

0

ソースの定義を開始します。

実際に私の回避策をリファクタリングすることができます。

    $("input#xiruki").autocomplete(
        { 
         source: <%= raw Category.select("distinct description as value, code as name, id as ID").where("description ILIKE ?", "%#{params[:term]}%").to_json %>, 
         minLength: 0, 
         select: function (event, data) { 
          $(this).autocomplete('disable'); 
         console.log(data.item); 

         } 
        }) 
        .blur(function(){ 
         $(this).autocomplete('enable'); 
        }) 
        .focus(function() { 
         $(this).autocomplete('search', ''); 
        }); 

ILIKEのみPGのためのものですので、あなたはLIKEILIKE用語を変更することができます。

関連する問題