如何在重置表单时运行JavaScript代码?

时间:2010-09-09 17:47:31

标签: javascript html forms javascript-events

我知道我们可以将处理程序附加到表单onsubmit ...但是我们如何在表单重置事件中添加处理程序? (通常在点击<input type="reset">时)

或者......也许没有这样的事件......那么问题就变成了如何解决这个问题?

(现在,我想在重置事件之后运行一个处理程序;但有一天我可能需要在重置事件之前运行

4 个答案:

答案 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会做的。