如何让onFocus发生一次?

时间:2010-09-15 16:44:09

标签: javascript html events

如何让这个onFocus只发生一次(不是现在用对话框阻挡窗口)?

<html>
    <form name="myForm">
      <input type="button"
             value="Big Button"
             name="myButton"
             onFocus="alert('Focus event occured')">
    </form>
    </html>

更新

抱歉,当我说“一次”时,我指的是每次获得焦点时的一次。目前只有一个焦点,它会显示无限的对话框。

1 个答案:

答案 0 :(得分:1)

这是有问题的。当输入字段获得焦点时,会触发焦点事件,您可以通过在输入字段中放置一个警告框来处理该事件,该警告框将重点放在(“模糊”事件)。当警报被取消时,输入字段再次获得焦点,甚至再次触发焦点,并导致无限循环的增益/失去/获得焦点。由于您正在改变焦点,因此您不止一次地获得焦点。

想要在聚焦处理程序中做一些改变焦点的事情,除非它是“当这个控件获得焦点时,将焦点发送到另一个控件”

如果您执行的操作不会导致焦点更改(警报执行此操作),例如在获得焦点时向div添加文本,您将看到该事件仅发生一次。

如果你描述了你真正想要实现的目标,你可能会得到更好的建议。我认为警报只是一种测试。