源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JavaScript判断用户是否对表单进行了修改的方法

  • 时间:2020-04-09 12:22 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JavaScript判断用户是否对表单进行了修改的方法
本文实例讲述了JavaScript判断用户是否对表单进行了修改的方法。分享给大家供大家参考。具体分析如下: 这段JS代码可以判断出用户是否对表单内容进行了修改,如果修改了表单,并退出浏览器,则会提醒用户是否要保存表单的内容,是非常有用的代码。
function formIsDirty(form) {
 for (var i = 0; i < form.elements.length; i++) {
  var element = form.elements[i];
  var type = element.type;
  if (type == "checkbox" || type == "radio") {
   if (element.checked != element.defaultChecked) {
    return true;
   }
  }
  else if (type == "hidden" || type == "password" ||
       type == "text" || type == "textarea") {
   if (element.value != element.defaultValue) {
    return true;
   }
  }
  else if (type == "select-one" || type == "select-multiple") {
   for (var j = 0; j < element.options.length; j++) {
    if (element.options[j].selected !=
      element.options[j].defaultSelected) {
     return true;
    }
   }
  }
 }
 return false;
}
使用示例:当退出浏览器是,如果用户修改了表单,则提醒用户是否要保存
window.onbeforeunload = function(e) {
 e = e || window.event; 
 if (formIsDirty(document.forms["someForm"])) {
  // For IE and Firefox
  if (e) {
   e.returnValue = "You have unsaved changes.";
  }
  // For Safari
  return "You have unsaved changes.";
 }
};
下面是一个完整的范例代码
[u]复制代码[/u] 代码如下:
Click on below button. Now change some values in form and click the button again. <form name="fooForm">     <input type="text" name="t"><br>     <input type="text" name="2" value="default"><br>     <select name="some">         <option value="fooo" selected="">foo</option>         <option value="bar">bar</option>     </select><br> </form>     <button onclick="alert(formIsDirty(document.fooForm))">Click to check if Form is Dirty</button> <br> <script> function formIsDirty(form) {   for (var i = 0; i < form.elements.length; i++) {     var element = form.elements[i];     var type = element.type;     if (type == "checkbox" || type == "radio") {       if (element.checked != element.defaultChecked) {         return true;       }     }     else if (type == "hidden" || type == "password" ||              type == "text" || type == "textarea") {       if (element.value != element.defaultValue) {         return true;       }     }     else if (type == "select-one" || type == "select-multiple") {       for (var j = 0; j < element.options.length; j++) {         if (element.options[j].selected !=             element.options[j].defaultSelected) {           return true;         }       }     }   }   return false; } </script>
希望本文所述对大家的javascript程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部