gpt4 book ai didi

javascript - 有没有办法在表单中的 onsubmit 操作之前暂停或等待函数完成

转载 作者:行者123 更新时间:2023-11-28 19:12:10 27 4
gpt4 key购买 nike

我有一个简单的例子,我发现onsubmit需要立即返回值。我有一个函数,它暂停 5 秒并等待它完成,然后返回 bool 值以模拟其他 JavaScript 处理操作。但是,即使在我的函数设法返回任何值之前,页面表单提交仍然会触发。那么我应该做什么,在 JS 中使用回调对我的情况有帮助吗?

<html>
<body>

<form action="test.html" onsubmit="return testing();">
<button type="submit"> hello world </button>
</form>

</body>
<script>
function testing()
{
var newState = -1;
setTimeout(function() {
if (newState == -1) {
alert('VIDEO HAS STOPPED');
output = "newText";
console.log("AFTER 5 Sec: " + output);
return false;
}
}, 5000);
//return false;
}
</script>
</html>

最佳答案

一种选择是在按钮单击本身中调用testing()。您可以在超时函数内手动调用submit()。但一定要在调用testing()后返回false。

例如:

<form id="myForm" action="test.html">
<button type="submit" onclick="testing(); return false;"> hello world </button>
</form>


<script type="javascript">
function testing()
{
var newState = -1;

setTimeout(function() {
if (newState == -1) {
alert('VIDEO HAS STOPPED');
output = "newText";
console.log("AFTER 5 Sec: " + output);
document.getElementById("myForm").submit();
return false;
}
}, 5000);
//return false;
}
</script>

顺便说一句,似乎不需要 newState 变量。

关于javascript - 有没有办法在表单中的 onsubmit 操作之前暂停或等待函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com