jqueryでオートコンプリートを使用しようとしていますが、デモデータで機能しますが、自分のデータソースで機能させることができませんでした。ユーザーが人の名前を数文字入力するだけのメーラーを作成しようとしています。連絡先データベースは、対応するメールが[宛先]フィールドに表示されるようにオートコンプリートを支援します。
次のファイルを含めました。
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
document.loadのjQueryコードは次のとおりです。
$(function() {
function log( message ) {
$('#to').append(message);
console.log(message);
}
$( "#search" ).autocomplete({
source: "search.php",
minLength: 2,
select: function( event, ui ) {
log( ui.item? ui.item.email : "NO" );
}
});
});
そして私のHTMLは次のとおりです。
<div class='ui-widget'><input type='text' class='medium' id='search' /></div> <br />
To:<br />
<div class='ui-widget'> <textarea type='text' style='width:80%; height:24px;' id='to' class='ui-widget-content'></textarea></div>
search.phpの結果は、jsonを考慮する限り問題ありません。これは、「Ahmed」の文字が押されたときの出力のサンプルです。
[{"email":"saddi@yahoo.com","name":"Ahmed Qasim"},{"email":"aaaab@alangari.com.sa","name":"Ahmed Abbas"},{"email":"mokhlef@yahoo.com","name":"Ahmed Sahdi"}]
Firebugをチェックして確認したので、search.phpからこの応答を受け取っていることはわかっていますが、検索入力フィールドの下に表示されません...代わりに、表示されるのはリストの切り株にすぎません。 。下の画像のように。
しかし、ここでデモコードを使用したとき、これとまったく同じことが期待どおりに機能しました。デモリストが正しく表示されないのはなぜですか。表示できるデータ量に制限はありますか?取得したJSON出力から3つのエントリのみを貼り付けましたが、数十のエントリがありました。