怎样判断一个表单内容是否改变

当点击编辑,进入编辑页面后,如果客户没有修改任何内容,点击保存的时候,提示没有任何修改,避免额外的操作数据库,怎么去判断呢,有最好的方法吗?

可以循环获得表单的所有元素, 然后给它们统一注册onchange事件
<form id="testForm" action="#">
<input type="text" id="testTxt"/>
<input type="password" id="testPassword" />
<form>
<script>
var edit = false; // 记录是否有修改
var testForm = document.getElementById('testForm');
var elements = testForm.elements;
var formChange = function() { // 统一处理修改的触发事件
edit = true;
}
for (var i =0; i < elements.length; i ++) {
elements[i].onchange = formChange; // 为所有的表单元素注册修改事件.
}
</script>
但是需要注意的是, checkbox 和radio 可能注册不上这种事件, 需要单独处理
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-20
先定义一个js的全局变量为0,然后每个表单元素定义一个onChang事件,
当onChange事件被触发了,全局变量置为1,然后保存时在判断全局变量
的值。
这是我的一个想法。
相似回答