表单提交时,jQuery不在Safari中运行

时间:2012-10-01 12:47:06

标签: jquery forms safari submit

我有一个特殊的问题让我感到头痛......下面的代码在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上,在上传文件之前,“上传...”行显示在将我转移到upload.php之前。在Safari上,“上传...”行不显示,一旦文件上传,它就会将我转移到upload.php。

如果这是Safari不支持的内容,我该如何实现完全相同的功能呢?

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

好的,我让它运转了......

而不是“提交”按钮,我通过id ='send'的'按钮'更改了它。我修改了脚本,首先在点击时显示p标签,然后在回调中添加表单提交,如下所示:

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

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

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

                });

            });
</script>

它现在适用于所有浏览器。在IE,FF,Chrome和Safari中测试过。