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>
私はこのクエリについて多くのことを考えてきましたが、オートコンプリートが定義されていない場合、ウィジェットを提供するjsファイルに問題があるに違いないと思いました。 いくつかのことを説明しました。
ファイルがロードされていません
jquery-uiファイルとjqueryファイルの間に問題/矛盾がある
jqueryファイルがブラウザにロードされるシーケンスに問題があります
オートコンプリート機能を呼び出すコードブロックは、誤ってマスターページに配置されます。
おもしろいことに、上記のそれぞれの順列をいくつか試し、最終的にファイルをエラーなしでロードしました。 唯一の問題は、オートコンプリートが起動しないことです!!! この問題を完全に解決したら、また投稿します。これが誰かの悲しみと時間の無駄に役立つことを願っています。