オートコンプリートでは、ajax 呼び出しを実際に操作する必要がないことに気付きました (ajax 呼び出しで機能する多くの例を見てきました)。次のように簡単に操作できます。
$(document).ready(function () {
var myData = jQuery.parseJSON(getProjects());
$("#inputSearchProject.ClientID").autocomplete(myData);
});
ここで、getProjects()
は小さなスクリプトTheProjects
で、オートコンプリートの提案 JSON 文字列で初期化されるプロパティです。
<script type="text/javascript">
function getProjects() {
return '<%= this.TheProjects %>';
}
</script>
デバッグ中に、myData が値を受け取ることに気付きましたが、まだランタイム エラーが発生します。「Microsoft JScript ランタイム エラー: オブジェクトはプロパティまたはメソッド 'オートコンプリート' をサポートしていません」これに答えます。
編集:私はエラーを解決しました(それはばかげたものでした:)初心者のような間違いです)
コードを次のように変更しました。
$(document).ready(function () {
var myData = jQuery.parseJSON(getProjects());
$("[id$='txtSearchProject']").keypress(function ()
{
$("[id$='txtSearchProject']").autocomplete(myData);
})
});
入力コントロールに何かを書いたことを検出したときにのみオートコンプリートを開始したいからです。なぜうまくいかないのか、何か提案はありますか?
ご提案いただきありがとうございます。私は問題を解決しましたが、あなたから受け取ったヒントだけです。ここに私の小さなコードを入れます。おそらく、同様の質問を持つ誰かが将来役に立つと思うでしょう:
$(document).ready(function () {
var myData = jQuery.parseJSON(getProjects());
$("[id$='txtSearchProject']").keypress(function ()
{
$("[id$='txtSearchProject']").autocomplete({ source: myData});
})
});
// .autocomplete(my data) の代わりに追加しました --->.autocomplete({ source: myData})