为什么这个jQuery在Chrome中不起作用?

时间:2011-07-04 13:16:35

标签: jquery

我有一个带有表单的页面。我在输入控件中填充了来自网址的参数email的值。

因此,当页面加载时,我会自动将表单提交给黑猩猩,如下所示:

 <script type="text/javascript">
        $(document).ready(function () {
            $('#mc-embedded-subscribe-form').submit();
            if ($("#previousUrl").val().indexOf('?') != -1) {
                window.location.replace($("#previousUrl").val() + '&emailRegistered=true#newsletterAnchor');
            }
            else {
                window.location.replace($("#previousUrl").val() + '?emailRegistered=true#newsletterAnchor');
            }
        });
    </script>

并在提交后立即重定向到以前的网址。

好吧,所有这些在Firefox中运行良好(提交表单后也会打开一个确认弹出窗口,主页面会重定向回上一页。

我不明白为什么在Chrome中不起作用。我的意思是,某种程度上POST动作没有完成,因为没有打开其他弹出窗口(这个页面重新定向回初始化)。

在FOR SURE POST完成后,你能否建议我进行重定向的方法? (通过这种方式,我认为也适用于Chrome)......

更新

表单的目标是“_blank”,所以来自邮件黑猩猩的脚本(我在POST的地方)打开一个确认弹出窗口。

更新2

尝试使用ajax但由于某种原因它没有做任何事情......

$(document).ready(function () {
            jQuery.ajax({
                url: $('#mc-embedded-subscribe-form').attr('action'),
                data: $('#mc-embedded-subscribe-form').serialize(),
                type: 'POST',
                success: function () {
                    if ($("#previousUrl").val().indexOf('?') != -1) {
                        window.location.replace($("#previousUrl").val() + '&emailRegistered=true#newsletterAnchor');
                    }
                    else {
                        window.location.replace($("#previousUrl").val() + '?emailRegistered=true#newsletterAnchor');
                    }
                }
            });
            return false;
    });

1 个答案:

答案 0 :(得分:1)

您是否尝试同时提交表单并重定向到另一个页面 ?你不能这样做。您一次只能发出一个请求(没有AJAX)。