当前位置: 首页 > 编程笔记 >

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

东方志尚
2023-03-14
本文向大家介绍JavaScript判断用户是否对表单进行了修改的方法,包括了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.";
 }
};

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

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 判断一个对象{}是否为空对象的简单方法,包括了JavaScript 判断一个对象{}是否为空对象的简单方法的使用技巧和注意事项,需要的朋友参考一下 做项目时遇到一个问题,判断一个对象是否为空对象,发现这样判断可以,上代码: 1. 代码1: 结果为:3 2. 代码2: 结果为:6 3. 代码3: 结果为:7 所以可以使用代码3的方法判断对象是否为空对象{}; 如果

  • 系统的日志需要登录和登出闭环,即有一个用户登录日志,就需要有一条登出日志。 如果用户通过登出按钮手动登出,触发登出接口是没问题的。 但是大多数用户,包括我自己都是直接点击x,关闭系统。 于是我监听了beforeunload事件,想在这里发登出请求。 现在遇到两个问题,一是:刷新也会触发这个事件。 二是:触发这个事件后的弹窗 重新加载是刷新弹出的,离开时关闭弹出的,我只想在点击离开的时候触发登出,重

  • 本文向大家介绍javascript判断firebug是否开启的方法,包括了javascript判断firebug是否开启的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript判断firebug是否开启的方法。分享给大家供大家参考,具体如下: 经常用Firefox + Firebug调试JavaScript的朋友都知道,一但开启firebug,页面js的运行将显著变慢。

  • cmf_is_user_login() 功能 判断前台用户是否登录 参数 无 返回 boolean

  • X1.0新增 sp_is_user_login() 功能: 判断用户是否已经登录 参数: 无 返回: 类型布尔 true/false

  • cmf_is_user_login() 功能 判断前台用户是否登录 参数 无 返回 boolean