0

私のプロジェクトの 1 つで、フォームが送信されるたびに要素内に新しい html コードを表示する必要があります。だから私はこれにAjaxを使用しましたが、それは仕事をしていないようです.フォームの送信を妨げるだけで、htmlファイル(私の場合はoutput.html)の内部を表示しません. 私が間違っていることを理解するのを手伝ってもらえますか?

これがindex.htmlのコードです

<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="index.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js">
</script>
</head>
<body>
<form id="cliform" onsubmit="return false;" action="" method="get">
<div class="cl">>   <input type="text" class="cli" name="cmd" autocomplete='off' value=""     autofocus /></div>
</form>

<script type="text/javascript">
var frm = $('#cliform');
frm.submit(function () {
    $.ajax({
        type: frm.attr('method'),
        url: frm.attr('action'),
        data: frm.serialize(),
        success: function (data) {
            $('#output').load('output.html #content');
        }
    });

    return false;
});
</script>
<div id="output"></div>
</body>
</html>

そして、ここにoutput.htmlがあります

<div id="content">
<h1> Hi </h1>
<p>Hello, World!</p>
</div>
4

1 に答える 1

0

.loadajaxリクエスト自体を実行するため、別のajaxリクエストの成功ハンドラーでajaxリクエストを実行しています。最初に呼び出される「outer」リクエストは、フォームのaction属性にある空のURLを読み込もうとします。そのため、そのリクエストはおそらく機能しません。その要求が失敗した場合、「内部」要求はまったく実行されません。

反対票についてはわかりませんが、Web開発者として、初心者でも、ブラウザ(FireFoxとFireBugのChrome)が提供するスクリプトとネットワークログを調べるだけで、このような問題を特定できるはずだからです。 。

于 2012-10-07T08:34:37.843 に答える