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