的更改被忽略。本文探讨了此至关重要任务的有效方法。
钥匙要点:
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中文网其他相关文章!