首页 > 解决方案 > 提交

问题描述

我正在尝试将一个元素设置为单击后禁用(提交数据后)。问题是,当我使用 javascript 禁用点击时,按钮被禁用,但不提交信息。

function disableButton(btn) {
  document.getElementById(btn.id).disabled = true;
  alert("Button has been disabled.");
}
<center><button type="submit" id="btn1" name="Submit" onclick="disableButton(this)">Submit</button></center>

有谁知道如何解决这一问题?我不是很有经验。我已经让它与表单一起使用,但不是作为元素。谢谢。

标签: javascripthtml

解决方案


尝试使用超时 0 延迟禁用。这应该在脚本生命周期结束时禁用按钮,允许表单在之前发布:

function disableButton(btn) {
  setTimeout( () => {
    btn.disabled = true;
  }) // No need to set a duration for the timeout
}
<form>
<button type="submit"
       onclick="disableButton(this)"
       action="/test">Submit</button></form>

现在,如果您检查控制台,您会看到一个 GET 请求正在发出。

此外,<center>在 HTML5 中已弃用且不支持。


推荐阅读