我试图在我的表单上使用函数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>
我有什么问题吗?还是有更好的方法来制作它?
感谢您的时间和帮助!
答案 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