JavaScript判断表单元素value值是否被修改过

快乐打工仔 分类:实例代码

本章节分享一段代码实例,它实现了判断表单元素的value值是否被修改的功能。

具有一定实用性,比如当表单的内容被修改的时候,这时不小心关闭了页面,给出一个提示,询问用户是否保存表单的修改,代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<script>
function formIsDirty(form) {
  for (var index = 0; index < form.elements.length; index++) {
    var element = form.elements[index];
    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.onload=function(){
  var obt=document.getElementById("bt");
  var odiv=document.getElementById("show");
  obt.onclick=function(){
    odiv.innerHTML=formIsDirty(document.myform)
  }
}
</script>
</head>
<body>
<div id="show"></div>
<form name="myform">
  <input type="text" name="username" value="pipipi.net"><br>
  <input type="text" name="address" value="青岛市南区"><br>
  <select name="kecheng">
    <option value="css教程" selected="">css教程</option>
    <option value="div教程">div教程</option>
  </select>
</form>
<input type="button" id="bt" value="查看效果"/>
</body>
</html>

上面的代码实现了判断功能,下面就介绍一下它的实现过程。

代码注释:

(1).function formIsDirty(form) {},参数是一个表单对象,如果改动则返回true,否则返回false。

(2).for (var index = 0; index < form.elements.length; index++) {},遍历form下每一个表单元素。

(3).var element = form.elements[index],获取指定索引的表单元素。

(4).var type = element.type,获取表单元素的类型。

(5).if (type == "checkbox" || type == "radio") {

  if (element.checked != element.defaultChecked) {

    return true;

  }

}如果是复选框或者单选按钮,那就判断当前的选中情况是否和默认选中是否一致,下面的判断原理也是如此。

回复

我来回复
  • 暂无回复内容