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


Posted in Javascript onMarch 18, 2015

本文实例讲述了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.";
 }
};

下面是一个完整的范例代码

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程序设计有所帮助。

Javascript 相关文章推荐
最简单的jQuery程序 入门者学习
Jul 09 Javascript
jQuery select操作控制方法小结
May 26 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
Sep 19 Javascript
javaScript NameSpace 简单说明介绍
Jul 18 Javascript
AngularJS中的Directive实现延迟加载
Jan 25 Javascript
简单实现jQuery进度条轮播实例代码
Jun 20 Javascript
JQuery PHP图片在线裁剪实例
Jul 27 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
Aug 16 Javascript
JS实现判断数组是否包含某个元素示例
May 24 Javascript
JavaScript回调函数callback用法解析
Jan 14 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
Oct 02 Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 #Javascript
JavaScript列表框listbox全选和反选的实现方法
Mar 18 #Javascript
JavaScript控制listbox列表框的项目上下移动的方法
Mar 18 #Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
Mar 18 #Javascript
jQuery实现根据类型自动显示和隐藏表单
Mar 18 #Javascript
jQuery实现列表的全选功能
Mar 18 #Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
Mar 18 #Javascript
You might like
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
window.ActiveXObject使用说明
2010/11/08 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
JS分页效果示例
2013/10/11 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
如何利用python读取micaps文件详解
2020/10/18 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
英语专业职业生涯规划范文
2014/03/05 职场文书
安全责任书范本
2014/04/15 职场文书
体育之星事迹材料
2014/05/11 职场文书
战略合作意向书
2014/07/29 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
圣诞节开幕词
2015/01/29 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript