0

ファイルアップロードフォームがあり、フォームが送信されるとすぐに次の JavaScript が起動します。

$("#uploader").submit(function() {
    $("#indicator").show();
    alert("Submitted");
    var refresh = setInterval(function() {
        $.get("progress.php?getprogress&randval=" + Math.random(), function(data) {
            alert("Got " + data);
            $("#indicator .bar div").width(data + "%");
            if (data == 100) {
                clearTimeout(refresh);
                $("#indicator").addClass("done");
            }
        });
    }, 250);
});

デバッグするアラートをいくつか追加しましたalert("Submitted")が、データをアラートするものではありません。別のウィンドウで開くと正しい値が得られますが、javascript はそれを取得しません。もう 1 つの奇妙な点は、ページの読み込みを停止するalert()と、値を持つ が起動し、コードが処理されることです。

4

3 に答える 3

2

フォームの送信はキャンセルされません。つまり、ページが更新されます。提出をキャンセルするには、電話することができますevent.preventDefault()

$("#uploader").submit(function(e) {
    e.preventDefault();

あなたの質問は実際には上で書いたものよりも多くのことを持っているので、コメントを回答に移動するだけです。

送信時に 2 つのアクションを実行することは不可能であり、両方が発生することを期待しています。特に年齢が送信されているときにコードを実行しようとしている場合。ファイルのアップロードを行う JavaScript ライブラリがあります。それらを調べることをお勧めします。しかし、基本的な考え方は、フォームをページ上の非表示の iframe に送信することです。

<form action="YourSubmitPage.php" method="POST" target="hiddenIframe">
    ...fileds here...
</form>
<iframe id="hiddenIframe" name="hiddenIframe" style="display:none" />
于 2013-07-13T13:11:13.630 に答える
0

わかりました:を使用してこれを解決しました<iframe>

<form action="save.php" method="post" target="theiframe">...</form>
<iframe name="theiframe" src="about:blank"></iframe>

まだJavaScriptを使用していますが、使用していませんe.preventDefault();

于 2013-07-13T13:24:26.453 に答える
-1

あなたの関数が$(document).ready()ステートメント内にあることを願っています

于 2013-07-13T13:13:30.877 に答える