2010-09-15 60 views
0

我如何使這個onFocus只發生1次(不像現在那樣阻塞了帶有對話框的窗口)?我如何讓onFocus發生一次?

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

更新:

遺憾,當我說「單次」我的意思是,每次它接收焦點一次。目前只有一個焦點,它顯示無限的對話框。

回答

1

這是有問題的。當輸入字段獲得焦點時,焦點事件被觸發,您通過放置一個警告框來處理該事件,該框將焦點從輸入字段中移除(「模糊」事件)。當警報解除時,輸入字段再次獲得焦點,甚至再次發射焦點,並導致無限循環的增益/失去/增益焦點。由於你正在改變焦點,你甚至不止一次地關注焦點。

不要想在焦點處理程序中做一些改變焦點的東西,除非它是沿着「當這個控件獲得焦點時,而不是焦點轉移到其他控件」的東西。

如果您執行的操作不會引起焦點更改(警報會執行此操作),例如您在獲得焦點時向div添加文本,則會看到該事件只會發生一次。

如果您描述了實際嘗試完成的內容,您可能會得到更好的建議。我認爲警報只是一個測試。

+0

是的,警報只是一個測試;我沒有意識到它正在失去並重新獲得焦點......謝謝! – 2010-09-15 17:06:35