【发布时间】:2013-06-09 04:56:33
【问题描述】:
在 Javascript 中,我如何附加一个事件处理程序以便它在默认操作之后运行?
<form target="_blank" action="submit.php" onsubmit="doThisAfterSubmit()">
<input type="submit" onclick="doThisAfterSubmit()" />
</form>
类似但不足的 Stack Overflow 问题:
javascript: Possible to add event handler that runs after the default behavior?
How to catch event after default action was performed in JavaScript
我已阅读这些内容,但它们正在处理通过使用诸如keyup 而非keypress 的变体解决的击键事件。我见过的唯一其他解决方案是setTimeout() 方法。我想避免使用setTimeout() 来支持更优雅的解决方案(如果存在)。
我的用例是我想在提交后从 DOM 中删除表单。
【问题讨论】:
-
“在默认行为之后”是什么意思? POST 请求何时发送?何时收到回复?
-
一旦提交完成,另一个页面被加载,你的javascript丢失了,所以答案很简单,你不能!
-
@adeneo 提示:查看表单的
target属性。 -
给表单一个ID(让我们使用
test),onclick="document.getElementById('test').style.display = 'none';"。表单被提交,消失。 -
onsubmit="this.style.display = 'none';"完美运行。也许问题出在您的doThisAfterSubmit()函数中?
标签: javascript jquery events jquery-events