避免多次onload提交

Avoid multiple onload submit

我试图在我的表单上使用函数 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>

我做错了什么吗?或者有什么更好的制作方法吗?

感谢您的宝贵时间和帮助!

使用 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