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