1
// Change the value of the outputText field
function setAjaxOutput(){
    if(httpObject.readyState == 4){
        document.getElementById('maincontent').innerHTML = httpObject.responseText;
    }
}

このスクリプトを含むページを読み込もうとしています

<script type="text/javascript">
$(document).ready(function() {
alert('dfd');
$("#formAddUser").validate({
    rules: {
        userImage: {
            required: true,
            accept: "png|jpg|gif|jpeg"
        }
    }
});
});
</script>

<div class="content-box">
<div class="content-box-header">
........................

読み込まれたページの JavaScript が実行されないのはなぜですか? ありがとうございました。

4

3 に答える 3

1

あなたの問題は、innerHTML が HTML フラグメントでスクリプトを実行しないことです。「element.innerHTML = htmlfragment;」と言うと、タグを追加して HTML をレンダリングするだけです。スクリプト タグは、ブラウザーによって HTML の一部としてレンダリングされないため、無視されます。

次のようにjQuery.ajax()の代わりに jQuery.load( )を使用する必要があります。

$('#maincontent').load('yourscript.php');

jQuery.load(); 最初にそれらのタグを取り出し、次にinnerHTMLを介して残りのHTMLを追加し、タグを個別に実行するコードが内部にあります。これを行うコードは、211行目あたりにあります。ドキュメントから:

サフィックスのセレクター式のない URL を使用して .load() を呼び出すと、スクリプトが削除される前にコンテンツが .html() に渡されます。これにより、スクリプト ブロックが破棄される前に実行されます。ただし、セレクター式を URL に追加して .load() を呼び出すと、DOM が更新される前にスクリプトが削除されるため、スクリプトは実行されません。

于 2012-04-17T08:31:53.943 に答える
0

初挑戦:

  <script type="text/javascript">

    alert('dfd');

    </script>

そして試してみてください

<script type="text/javascript">
    $(document).ready(function() {
    alert('dfd');

    });

</script>

結果を貼り付けます。

于 2012-04-16T10:44:09.340 に答える
0

あなたのフォームにはajaxが付属していると思います。そのため、検証を関数に変換し、ajax で読み込まれたコンテンツ内で呼び出すことができればより良いでしょう。

于 2012-04-16T10:48:03.447 に答える