jquery1.9.1とjquery-ui1.10.1を使用しています。
MySQLデータベースからデータをプルするPHPコードからのjsonデータソースがあります。データはjson_encodeを使用してエンコードされ、次の形式で出力されます。
[{"label":"label1","value":"value1"},{"label":"label2","value":"value2"},...]
オートコンプリートメニューからアイテムを選択すると、selectイベントは正常に機能し、ui.item引数には正しい情報が含まれますが、change(autocompletechange)イベントでは、ui.item引数は常にnullになります。
$( "#autocomplete" ).autocomplete({ source: 'custSearch.php',
select: function(event, ui) {
console.log(ui);
$( "#customer" ).text(ui.item.label);
$("#validpic").remove();
$("#validpic_div").append("<img id='validpic' src='/images/icons/001_06.png'>");
$( "#go" ).focus();
},
change: function(event, ui) {
console.log(ui);
}
});
繰り返しますが、上記のコードでは、selectui.item はjsonデータソースからのラベルと値のペアを保持しています。ただし、選択が行われた場合でも、変更ui.itemは常にnullです。
jquery-uiオートコンプリートAPIドキュメントから、ui.itemは次のようになります。
メニューから選択されたアイテム(ある場合)。それ以外の場合、プロパティはnullです。
助言がありますか?