javascript - 避免多次 onload 提交

标签 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>

我做错了什么吗?或者有什么更好的办法吗?

感谢您的时间和帮助!

最佳答案

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

关于javascript - 避免多次 onload 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43687036/

相关文章:

android - css 形式 android

JavaScript "submit(); "函数未找到错误

css - 带有图像背景的提交按钮 - CSS

javascript - 选中和取消选中复选框

javascript - 为什么模块中的函数没有传回主进程?

javascript - 如何使用 JS 自动填写 Google 表单并随机填写

reactjs - OpenAI API 拒绝设置不安全 header "User-Agent"

javascript - Facebook Opengraph自定义fb登录按钮

javascript - 第二次回调 ajax web 方法的问题

javascript - Jquery Fancyform 和 IE10 : Checkbox does not get checked when clicking on label