避免多次上传提交

时间:2017-04-28 18:49:05

标签: javascript forms submit onload

我试图在我的表单上使用函数onload="submit()",但是当页面加载时,它会多次执行。结果是,但我怎么能停止循环?我怎么才能使用它一次?这是我的代码:

    <script type="text/javascript">
    function submit() {
    if (!sessionStorage.getItem("submitted")) {
        sessionStorage.setItem("submitted", "true");
        document.post.submit();
    }
}
    </script>

    <body onload="submit()">
        <form method="post" id="post" name="post">
              //stuff here
             <input id="submit" type="submit" value="Valider" name="test" class="submit">
        </form>

我有什么问题吗?还是有更好的方法来制作它?

感谢您的时间和帮助!

1 个答案:

答案 0 :(得分:2)

使用sessionStorage记住您是否已提交表单,因此请勿再次提交。

function submit() {
    if (!sessionStorage.getItem("submitted")) {
        console.log("submitting");
        sessionStorage.setItem("submitted", "true");
        document.getElementById("post").submit();
    } else {
        console.log("already submitted, not repeating");
        sessionStorage.removeItem("submitted");
    }
}

此外,请勿使用name="submit"id="submit"作为提交按钮。见"Submit is not a function" error in JavaScript