我有jQuery自動完成的這個問題。 我使用通過PHP函數從mySQL數據庫中檢索的JSON數據。jQuery自動完成無法正常工作
$.ajax({
dataType: 'json',
async: false,
method: 'post',
success: function(data) {
test = data;
},
url: '<?php echo site_url('products/autocomplete/'); ?>'
});
因此,我的JSON數據存儲在變量'test'中。 這是我的自動完成代碼:
$("#prodname").autocomplete({
minLenght: 2,
source: test,
focus: function(event, ui) {
$("#prodname").val(ui.item.prodname);
return false;
},
select: function(event, ui) {
$("#prodname").val(ui.item.prodname);
$("#uname").val(ui.item.uname);
$("input[name=prodname_fk]").val(ui.item.id);
return false;
}
})
.data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.prodname + "</a>")
.appendTo(ul);
};
的數據正確加載和一切,但自動完成場似乎並沒有正常工作。我的JSON對象的第一項以'b'開頭,所以只有當我按下字母'b'時,纔會出現自動完成(建議)。
我該如何解決這個問題?我的猜測可能是因爲我使用async:false,但是這是我首先使它工作的唯一方法。
我需要我的產品字段自動完成,因此,當用戶選擇的產品,一個隱藏字段(prodname_fk)接收產品的相應ID。 uname字段(度量單位)僅用於顯示目的。
我附上圖片供您參考。
預先感謝您。
我認爲你需要使用.d.data。順便說一句:不錯的形式:) – 2011-04-03 11:13:22
非常感謝。 :) – 2011-04-03 18:08:30