問題 1: Web サーバーまたは一般的なアプリケーション処理プログラム (.ashx) プログラムから json 文字列を取得すると、自動的に認識できず、文字列型として解釈されます。実際、この問題を解決するのは難しくありません。コードの一部を以下に示します。赤色でマークされた部分に注意する必要があります。
$("#txt").autocomplete ("/ Asmx/ExecutePlan.ashx", {
extraParams:{hosid:HosID,profid:ProfID},
minChars: 0,
max: 700,
mustMatch: true,
autoFill: true 、
selectFirst: true、
scrollHeight: 220、
width:640、
scroll:true、
parse: function(data){
var obj=eval( "(" データ ")");
var row = [];
for(var i = 0; irow[i] = {data:obj[ i], //json
value: obj[i].instName, //リスト内の値
result: obj[i].instName} //ドロップダウンリストに表示されます
}
if(obj.length == 1)
{
// $("#hfInstID").val(obj[0].executeID); ").click ();
}
return row;
} ,
formatItem: function(row, i, total) {
},
formatMatch: function(row, i, max) {
},
formatResult: function(row, i, max) {
}
});
この問題は次のとおりです。解決しましたが、formatItem イベントと formatMatch イベントの両方が失敗するという新たな問題が発生しました。当面は解決方法がわかりません。ただし、結果を入力するときに何らかの操作を実行したい場合は、このメソッドを呼び出すことができます。これは、以前の $("#txt").autocomplete メソッドとは別に記述されていることに注意してください。上に書いたとおり、下と同じです。
$("#txt").result(function(event, data, formatted) {
});
特定のパラメーターの意味については、公式の開発ドキュメントを参照してください。現時点で使用している機能は限られているので、今後新しい機能に出会ったら追加していきます。
追加のポイント: $("#txt").flushCache(); メソッドは、オートコンプリート キャッシュをクリアするために使用されます。パラメーターを変更すると、キャッシュのレガシー問題が発生することがあります。