的更改被忽略。本文探討了此至關重要任務的有效方法。
鑰匙要點:
onchange
一種優越的方法涉及將默認值與當前值進行比較。 但是,默認值屬性在表單元素類型中各不相同。 檢測形式的變化可實現多種改進:
>防止數據丟失:
在離開頁面之前警告用戶未保存的更改,可能會提供保存選項(例如,通過Ajax)。javascript事件處理程序遭受了幾個缺點:onchange
>
恢復更改:onchange
如果用戶修改值然後將其恢復為
onchange
。 onchange
將onchange
添加或刪除表單元素需要動態管理事件處理程序。 onchange
> 每個表單元素都具有反映其初始狀態的默認值屬性。將此默認值與當前值進行比較可靠地檢測到變化。 但是,特定屬性各不相同:
> textual Inputs和textareas:
這些元素使用>屬性。 一個簡單的比較就足夠了:
這適用於標準和HTML5輸入類型(電子郵件,電話,URL等)。 defaultValue
>
var name = document.getElementById("name"); if (name.value !== name.defaultValue) alert("#name has changed");
這些使用defaultChecked
>屬性(boolean):
var name = document.getElementById("name"); if (name.value !== name.defaultValue) alert("#name has changed");
注意:defaultValue
存在但反映了value
屬性,而不是檢查狀態。
選擇框(下拉框):
屬性:defaultSelected
var optin = document.getElementById("optin"); if (optin.checked !== optin.defaultChecked) alert("#optin has changed");
屬性需要更複雜的循環邏輯,以比較每個選項的selected
>和selected
>。
selected
defaultSelected
可重複使用的解決方案(即將推出!)
> 雖然上述方法是有效的,但非常需要處理跨瀏覽器的所有形式類型的通用,可重複使用的JavaScript函數。 未來的文章將解決這個問題。
常見問題(FAQS)
> >常見問題解答部分涵蓋了檢測HTML形式更改的各個方面,包括使用JavaScript,jQuery,服務器端語言,防止具有未保存更改的導航以及處理特定表單元素類型。 (為簡短而省略了原始常見問題解答,但它們所包含的信息在上面總結)。
以上是如何檢查HTML表格是否已更改的詳細內容。更多資訊請關注PHP中文網其他相關文章!