bugfix> javascript > 投稿

aspxコンテンツページで定義されたテキストボックスでオートコンプリートjQueryUiウィジェットを起動しようとしています。

jQuery-ui.jsファイルへの私の参照は、マスターページのheadセクションにあります。

オートコンプリートの呼び出しは、ページの下部にあるマスターページのスクリプトブロックで行われます。

コンテンツページで定義されたコントロールのIDは、出力ページで生成されたIDと異なるため、(マスターページのスクリプトセクションで)コントロールに対して行った参照は、表示される正しいIDです出力ページ(ctl00_Content_txtEmailAddress_txtText)。

ページが読み込まれると、次の例外が発生します。任意の助け、大歓迎。

Uncaught TypeError: $(...).autocomplete is not a function 
at HTMLDocument.<anonymous> (PasswordReset.aspx?r=P1.WEBGUEST&f=P1.EPR.USERPASS.VIW:376)
at fire (jquery.js:974)
at Object.fireWith [as resolveWith] (jquery.js:1084)
at Function.ready (jquery.js:406)
at HTMLDocument.DOMContentLoaded (jquery.js:83)

コンテンツとマスターページのスニペットを以下に含めました

コンテンツページ:

<p1:CustomisableTextBox ID="txtEmailAddress" runat="server" SkinID="Block" 
Mandatory="true" MandatoryValidation="true" CanDisable="false" 
CanChangeMandatory="false" />

マスターページ:

<script type="text/javascript">
    $(document).ready(function () {
        $("#ctl00_Content_txtEmailAddress_txtText").autocomplete({
            source: 'AutocompleteHandler.ashx'
        });
    });
</script>

回答 1 件
  • 私はこのクエリについて多くのことを考えてきましたが、オートコンプリートが定義されていない場合、ウィジェットを提供するjsファイルに問題があるに違いないと思いました。 いくつかのことを説明しました。

    ファイルがロードされていません

    jquery-uiファイルとjqueryファイルの間に問題/矛盾がある

    jqueryファイルがブラウザにロードされるシーケンスに問題があります

    オートコンプリート機能を呼び出すコードブロックは、誤ってマスターページに配置されます。

    おもしろいことに、上記のそれぞれの順列をいくつか試し、最終的にファイルをエラーなしでロードしました。 唯一の問題は、オートコンプリートが起動しないことです!!! この問題を完全に解決したら、また投稿します。これが誰かの悲しみと時間の無駄に役立つことを願っています。

あなたの答え