JQuery UI otomatik tamamlama ile potansiyel olarak basit bir sorun beni güldürüyor. Kaynağım ben tüm iyi çalışırjQuery UI otomatik tamamlama, giriş alanında etiket yerine değer gösterir
$(function() {
$("#search").autocomplete({
source: PK.getAutocompleteSource(),
focus: function(event, ui) {
$("#search").val(ui.item.label);
return false;
},
select: function(event, ui) {
$("#search").val(ui.item.label);
PK.render(ui.item.value);
}
});
});
ile widget'ı yürütmesini
var ac = [
{
label: "One Thing",
value: "One-Thing"
},
{
label: "Two Thing",
value: "Two-Thing"
},
]
olduğunu. #search
giriş alanına yazdığımda, eşleşen etiket açılır menüde görünür ve I select
doğru arama gerçekleştirilir. Widget, #search
giriş alanına label
giriş alanında, ok tuşlarını (veya fareyi) kullanarak açılır menüden farklı öğeleri seçerken bile gösterir. Hariç tuttuğum anda, widget #search
giriş alanını label
yerine value
ile doldurur. Bu yüzden alan One Thing yerine One-Thing gösterir.
Bunu nasıl düzeltebilirim? Elbette beklediğim şey daha mantıklı davranış, değil mi? Eğer değer olmasını etiketi istiyorsanız
Teşekkür, 'event.preventDefault();' hile yaptı. Cidden, bu dokümanlar içinde olmalı. – punkish
Seçmek için ok tuşlarını kullandığınızda, olay tetiklenmez ... – dpp
@dpp 'focus' geri arama (asıl soruda) false değerini döndürür, bu, kullanmadaki ok tuşlarını kullanırken varsayılan davranışı atlamanın başka bir yoludur. 'value' değil' label'. listeden bir öğe seçildiğinde, nasıl olursa olsun, "select" geri aramasını çağırır ve 'preventDefault() 'veya' false' işlevini kullanmak istediğiniz yer vardır. Varsayılan davranışı atlamak için –