2012-10-17 38 views
0

我有一個表單通過監聽其所有表單字段的onChange事件來跟蹤其髒狀態。如果表單很髒,則當用戶嘗試離開頁面或嘗試選擇其他項目時,會向用戶發送未保存的更改的警告。onFhanged事件沒有從iframe中的輸入字段中觸發

這適用於「正常頁面」中的表單。

此表單也用於iframe中。當更改第一個輸入字段的值,然後跳轉到表單中的另一個字段時,onChange even將按預期方式觸發,並將表單設置爲dirty。但是,如果只更改一個輸入字段並單擊iframe外部的任意位置,則更改的輸入字段的onChange事件是而不是已觸發。看起來好像輸入字段並沒有真正失去焦點,當iframe丟失時。

如何確保在點擊iframe外部時觸發onChange事件?

+0

請您提供您的件代碼? –

+0

您是否嘗試爲iframe中的click事件添加偵聽器,並在輸入上添加另一個偵聽器。在輸入事件回調中,只需調用stopPropagation。因此,現在您可以檢測輸入(焦點)上的點擊,然後單擊外部(模糊) – JuSchz

+0

這是一個計時問題。當在iframe外部單擊時,iframe會被外框更新,iframe中的「髒表單」將消失,但沒有足夠的時間來提升onchange事件。當我把這個調用更新了setTimeout中的iframe並且只在300ms後運行它時,表單有足夠的時間來觸發onchange事件並將表單設置爲dirty。 我是否有機會確定何時可以更新iframe,以便表單元素有足夠的時間觸發任何onchange事件? – James

回答