JQuery UI Tabs ウィジェットで構成される Web ページがあります。タブ ウィジェットは、AJAX 経由でタブを読み込みます。タブページの 1 つ (名前はDescriptionPage ) に、ajaxForm プラグインを介して送信されるフォームがあります。
<div id="tabs">
<ul>
<li>
<a href="DescriptionPage">Description Page</a>
</li>
</ul>
</div>
これは私のDescriptionPageの内容です。
<form id="myForm">
<!-- Form elements goes here -->
</form>
<script>
$(function(){
$('#myForm').ajaxForm(function (response) {
$('#myForm').parent().empty().append(response);
});
});
</script>
フォームが送信されると、フォームとスクリプトの両方で同じDescriptionPageが返されます。そのため、フォームの内容はサーバー側の応答に置き換えられます。応答には検証メッセージも含まれます。
問題は、シナリオ全体が Chrome と Firefox でうまく機能することです。しかし Internet Explorer 8 では、奇妙な問題が発生します。
タブが最初に読み込まれると、javascript が正常に実行されます。ユーザーがフォームを送信して応答が送信されると、IE は「JQuery が定義されていません」と言って JavaScript の実行に失敗します。
ajax経由でロードされたコンテンツ内でIEがJQueryの呼び出しに失敗するのはなぜですか? 回避策はありますか?
PS:スクリプトをhtmlから分離することを考えましたが、それはまったくオプションではありません:(
P.S2: 私の javascript と CSS ファイルは、愚かな IE のためにめちゃくちゃになりました。