2012-06-03 17 views
5

JQuery UI Otomatik Tamamlama yöntemine, kullanılan dizin adları değilken 'etiket' ve 'değer' olarak kullanılacak JSON dizi dizinlerinin söylenmesinin bir yolu var mı? JSON dizisinde? (Firebug tarafından günlüğe gibi)jQuery UI Otomatik Tamamlama: Söyle 'Etiket' ve 'Değer'

benim arama değerlerini içeren aray şuna benzer:

[ Object { id="12", name="Don Davis" }, Object { id="17", name="Stan Smith" } ] 

Ben 'value' olarak 'etiket' ve 'isim' olarak 'kimlik' kullanmak istiyor ama yapamıyor config nesnesine nasıl anlatılacağını anlamaya.

Dizim yerel bir değişkende bulunuyor - Ajax çağrısı yapılmıyor.

Başka bir soru için bu response başka bir soruya, gizli bir form girdisi oluşturarak sorunu çözer, ancak bunun daha iyi bir şekilde ele alınması gibi görünüyor. Eğer böyle bir şey deneyebilirsiniz Jquery UI docs okuyunca

+0

Bir işlevi "kaynak" parametresi olarak kullanırsanız. –

cevap

7

:

<script> 
    $(function() { 
var projects = [ { id: "12",value: "Don Davis" }, { id: "17", value:"Stan Smith" } ] 

    $("#project").autocomplete({ 
     minLength: 0, 
     source: projects, 
     focus: function(event, ui) { 
      $("#project").val(ui.item.value); 
      return false; 
     }, 
     select: function(event, ui) { 
      $("#project").val(ui.item.value); 
      $("#project-id").val(ui.item.id); 

      return false; 
     }, 
     search: function(event, ui) { console.log(event); console.log(ui) } 
    }) 
    .data("autocomplete")._renderItem = function(ul, item) { 
     return $("<li></li>") 
      .data("item.autocomplete", item) 
      .append("<a>" + item.value+"</a>") 
      .appendTo(ul); 
    }; 
});​ 
    </script> 
Böyle bir dizi döndürmesi gerekir
+0

Teşekkürler - docs demosu aynı zamanda 'id' için gizli alanı kullanır (# proje-kimlik alanınızda olduğu gibi), bu yüzden JSON dizi indekslerini doğrudan ayarlamak dışında bunu yapmak için resmi olarak desteklenen bir yol olduğunu düşünüyorum. Bu yol muhtemelen daha iyi performans gösterir. Tekrar teşekkürler. – cantera

+0

jquery-ui 1.11 (ve muhtemelen daha önce), 'data (" autocomplete ")' ın 'data (" uiOutocomplete ") olması gerektiğini unutmayın. –

-1

: (yan sunucu PHP)

for(...){
$suggest = array('value'=>$value,'label'=>$label); }

Yu sen istediğimizi yapabiliriz
İlgili konular