Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止刷新时表单重新提交警报?_Javascript_Html_Ajax_Form Submit - Fatal编程技术网

Javascript 如何防止刷新时表单重新提交警报?

Javascript 如何防止刷新时表单重新提交警报?,javascript,html,ajax,form-submit,Javascript,Html,Ajax,Form Submit,我有一个有页脚的网站,里面有一个小表单。这个表单中只有两件东西:一个用于接收电子邮件的输入文本框和一个提交按钮 当用户按下Submit按钮时,不会发生重定向,而是执行AJAX调用将电子邮件添加到数据库表中,并使用jQueryslideDown()显示相应的消息 问题是,尽管实际上没有重定向到另一个页面,但当我有时刷新页面时,会收到一个浏览器警报,提示这可能会重新提交数据。我并不总是来,只是偶尔来。不知道为什么 我怎样才能完全阻止这个错误的发生 JSFiddle(见下面的注释): 请注意,由于js

我有一个有页脚的网站,里面有一个小表单。这个表单中只有两件东西:一个用于接收电子邮件的输入文本框和一个提交按钮

当用户按下Submit按钮时,不会发生重定向,而是执行AJAX调用将电子邮件添加到数据库表中,并使用jQuery
slideDown()
显示相应的消息

问题是,尽管实际上没有重定向到另一个页面,但当我有时刷新页面时,会收到一个浏览器警报,提示这可能会重新提交数据。我并不总是来,只是偶尔来。不知道为什么

我怎样才能完全阻止这个错误的发生

JSFiddle(见下面的注释):

请注意,由于jsiddle中的
footer\u subscribe.php
文件不可访问,因此这里没有表单重新提交错误。。但是,刷新原始实际页面时,有时会显示错误:

实际页面(表单位于页面底部的页脚部分):

HTML代码:

<section class="subscribe">
    <form class="form-wrapper cf" method="post">
        <input name="email" placeholder="Enter your email here..." />
        <button id="submitBtn" type="submit">Subscribe</button>
    </form>
    <p></p>
</section>
$(function () {
    $("#submitBtn").click(function (event) {
        event.preventDefault();
        event.returnValue = false;
        var inputEmail = $(".subscribe input[name=email]").val();
        var inputEmailTrimmed = $.trim(inputEmail);
        if (inputEmail == "") {
            $(".subscribe p").html("Please enter an email address.").slideDown();
        } else if (inputEmailTrimmed == "" && inputEmail != inputEmailTrimmed) {
            $(".subscribe p").html("Simply entering spaces won't cut it :)").slideDown();
        } else {
            $.ajax({
                type: "POST",
                url: "footer_subscribe.php",
                data: {
                    email: inputEmail
                },
                success: function (data) {
                    if (data == "successful") {
                        $(".subscribe p").html("Thanks for your interest!").slideDown();
                    } else if (data == "already_subscribed") {
                        $(".subscribe p").html("This email is already subscribed.").slideDown();
                    } else if (data == "invalid_email") {
                        $(".subscribe p").html("This email is invalid.").slideDown();
                    } else {
                        $(".subscribe p").html("Something went wrong. Please try again later.").slideDown();
                    }
                },
                error: function () {
                    $(".subscribe p").html("Subscription is not available.").slideDown();
                }
            });
        }

    });
});

这表示您向页面发出POST请求;网站上是否有其他表单重定向到此页面?您的意思是刷新页面时会出现文本。