2016-04-13 9 views
0

Jqueryに自動選択付きのテキストフィールドがあります.3文字を入力すると、データベースからクエリを取得してデータを表示します。 _renderItemメソッドからidプロパティを取得する必要がありますが、正しく取得できません。以下は、私が持っているコードです:自動補完で項目が正しく選択されていません

$("#textField").autocomplete({ 
    minLength: 3, 
    source: function(request, response) { 
     var loadIdentities = "<?php echo $this->Html->url(array('controller' => 'Identities', 'action' => 'getIdentity')); ?>/" + Base64.encode(request.term); 
     $.getJSON(loadIdentities, function(data) { 
      response(data); 
     }); 
    } 
}).data("ui-autocomplete")._renderItem = function(ul, item) {   
    console.log(item.id); 
    return $("<li>")   
     .append("<a>" + item.label + "</a>") 
      .appendTo(ul); 
}; 

私は正しい値を得ていません。これは、オートコンプリートリストの要素をマウスでクリックして選択すると、item.idが正しく更新されず、正しいitem.idが入力されたときに表示されている値が表示されますオートコンプリートのために。

たとえば、テキストフィールドに「John Smith」という名前を入力すると、オートコンプリートの2つのオプション、John SmithとJohn Smithsonが表示されます。 「John Smithson」オプションをクリックして選択すると、item.idの値が「John Smith」になり、IDが「John Smithson」になります。

この問題を解決するにはどうすればよいですか?

答えて

0

私はオートコンプリートの選択方法使用してこの問題を解決することができた:

select: function(event, ui) { 
      $("[name='elementName[0]']").val(ui.item.label); 
      $("[name='elementID[0]']").val(ui.item.id); 
      return false; 
    } 

私はソースの後にこれを入れて、今それが動作します。

関連する問題