我知道我们可以将处理程序附加到表单onsubmit
...但是我们如何在表单重置事件中添加处理程序? (通常在点击<input type="reset">
时)
或者......也许没有这样的事件......那么问题就变成了如何解决这个问题?
(现在,我想在重置事件之后运行一个处理程序;但有一天我可能需要在重置事件之前运行)
答案 0 :(得分:6)
根据MDN,<form>
代码支持onreset
事件。
Onreset
在实际重置表单之前触发;重置后似乎没有任何事件。我测试了重置是否会为重置值的输入触发onchange
事件,但似乎没有。
重置后执行某项操作的解决方法可能是在重置时设置标志,然后使用重置按钮的onblur
事件(因此重置后,它会在您下次点击其他内容时运行)。当然,另一种解决方法是触发setTimeout,以便脚本在重置后运行很短的时间。任何一个都是一个黑客,我害怕。
答案 1 :(得分:2)
您可以使用“form”元素的“reset”事件
<form action="form_action.php" onreset="return confirm('Do you really want to reset the form?');">
....
</form>
答案 2 :(得分:2)
找到了一个对我有用的答案,所以我想我会把它发布给遇到这个的其他人。
而不是<input type='reset'>
,您可以使用<button>
元素与首先调用form.reset()
方法的点击处理程序,然后您可以添加重置操作后需要执行的任何脚本
答案 3 :(得分:1)
你试过吗
<form onreset="action()">
在重置表单之前,似乎可以帮助我运行脚本。至于之后...我认为它不受支持,可能是setTimeout会做的。