2011-10-25 9 views
0

以下のコードは、テキストが空の場合のみ配列を表示します。テキストが空の場合には、入力中にリストを表示する必要があります。テキストが空でない場合にオートコンプリートウィジェットが機能しないのはなぜですか?

STEPS:テキスト

  • タイプ 'ABC' のようなテキスト、上

    1. フォーカスが
    2. 削除 'ABC' が起こりません(このテキストは、AJAX呼び出しを行う配列を返します)私は正しく配列を参照してください。

      ​​3210
  • 答えて

    2

    あなたはkeyUp機能を使用する必要はありません。あなたは、このようなソースとして

    $(document).ready(function(){ 
        $("#titolare").autocomplete({ 
          source: "page.php",    } 
          focus: function(event, ui) {    
             $("#titolare").val(ui.item.titolare); 
             return false; 
            }, 
            select: function(event, ui) {    
             $("#titolare").val(ui.item.titolare); 
             return false; 
            } 
        }).data("autocomplete")._renderItem = function(ul, item) {   
            return $("<li></li>") 
             .data("item.autocomplete", item) 
             .append("<a>" + item.titolare + "<br />("+ item.cod_fis +")</a>") 
             .appendTo(ul); 
           }; 
    }); 
    

    をURLを与えることができ、あなたのpage.phpにあなたはrelavant JSONオブジェクトのリストを返すことができます。あなたが必要とする(そして今あなたが使用してそれを実行しようとするAJAX呼び出しやデータ変換の両方を行うだろう関数にsource属性を設定する(keyupリスナーを使用せずに)#titolareでオートコンプリートウィジェットを使用することができます http://jqueryui.com/demos/autocomplete/#remote

    1

    keyup方法)。以下のような

    何か:

    $("#titolare").autocomplete({ 
         minLength: 0,   
         source: function(request, response){ 
          // ajax call and any data transformation here... 
         }, 
         focus: function(event, ui) {    
         $("#titolare").val(ui.item.titolare); 
         return false; 
         }, 
         select: function(event, ui) {    
         $("#titolare").val(ui.item.titolare); 
         return false; 
         } 
    }) 
    ... 
    

    は、ルックhereを持っています。

    関連する問題