首页 > 代码库 > javascript检查表单数据是否改变

javascript检查表单数据是否改变

 
有的时候,需要检查用户是否修改了一个表单中的内容,则可以使用下面的技巧,其中如果修改了表单的内容则返回true,没修改表单的内容则返回false。代码如下:
  1. function formIsDirty(form) {  
  2.     for (var i = 0; i < form.elements.length; i++) {  
  3.         var element = form.elements[i];  
  4.         var type = element.type;  
  5.         if (type == "checkbox" || type == "radio") {  
  6.             if (element.checked != element.defaultChecked) {  
  7.                 return true;  
  8.             }  
  9.         }  
  10.          else if (type == "hidden" || type == "password" || type == "text" || type == "textarea") {  
  11.             if (element.value != element.defaultValue) {  
  12.                 return true;  
  13.             }  
  14.         }  
  15.          else if (type == "select-one" || type == "select-multiple") {  
  16.             for (var j = 0; j < element.options.length; j++) {  
  17.                 if (element.options[j].selected != element.options[j].defaultSelected) {  
  18.                     return true;  
  19.                 }  
  20.             }  
  21.         }  
  22.     }  
  23.     return false;  
  24. }  
  25. window.onbeforeunload = function(e) {  
  26.     e = e || window.event;  
  27.     if (formIsDirty(document.forms["someForm"])) {  
  28.         if (e) {  
  29.             e.returnValue = "You have unsaved changes.";  
  30.         }  
  31.         return "You have unsaved changes.";  
  32.     }  
  33. };  

javascript检查表单数据是否改变