4

頭の痛い問題があります... 次のコードは、Firefox では完全に機能しますが、Mac OS の Safari では機能しません。

ファイルのアップロード中に簡単な「読み込み中メッセージ」を表示したい。したがって、私のページは次のようになります。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
        <script>
            $(document).ready(function () {
                $('#upload').on('submit', function () {

                    $("#loading").fadeIn();

                });

            });
        </script>
    </head>

    <body>
        <p id="loading" style="display:none">UPLOADING...</p>


            <form name="upload" id="upload" method="post" action="upload.php" enctype="multipart/form-data">
                <input type='file' name='file[]' multiple/>
                <input type="submit" value="Upload..."/>
            </form>

    </body>
</html>

Firefox では、ファイルのアップロード中に「UPLOADING...」という行が表示されてから、upload.php に転送されます。Safari では、「UPLOADING...」行は表示されず、ファイルがアップロードされると、upload.php に転送されます。

これが Safari でサポートされていないものである場合、まったく同じ機能を実現するにはどうすればよいですか?

ご協力ありがとうございました!

4

1 に答える 1

3

わかりました、私はそれを働かせました...

「送信」ボタンの代わりに、id='send' の「ボタン」に変更しました。最初にクリック時に p タグを表示するようにスクリプトを変更し、次のようにフォーム送信をコールバックに追加しました。

<script>
            $(document).ready(function () {

                $("#send").click(function () {

                    $("#loading").fadeIn(function () {
                        $("#upload").submit();
                    });

                });

            });
</script>

現在、すべてのブラウザで動作します。IE、FF、Chrome、Safari でテスト済み。

于 2012-10-01T12:57:23.887 に答える