js 页面值变动监听

1、初始化值map对象

var compareMap = {};// 定义全局变量

function initCompareMap(context){//context 为指定要初始化的区域,即上下文
 setTimeout(function(){

 // 查找该域所有表单元素,过滤分页的、按钮和class含‘.ignore’的表单元素
  $(":input",context).not(".easyui-pagination :input,[type='button'],button,.ignore",context).each(function(){
   var obj = $(this);
   var compareFlag = obj.attr("compareFlag");
   if(compareMap[randomValue]){
    
   }else{
    var randomValue = "r_"+Math.round(Math.random()*1000000000);
    obj.attr("compareFlag",randomValue);
    compareMap[randomValue] = obj.val();
   }
  });
 },1500);
}

2、调用值对比方法
function compareAllInput(selector,context){// selector: 过滤掉的元素,jquery选择器格式;context:区域,即上下文
 var msg = "",selectors = selector || "",ct = context || document;
 $("[compareFlag]",ct).not(selectors).each(function(){
  var obj = $(this);
  var compareFlag = obj.attr("compareFlag");
  if(compareMap[compareFlag] == obj.val()){
   
  }else{

 // 假如是table格式,获取输入域的小标题
   msg += obj.parents("td:first").prev().text() + "值有变动<br/>";
  };
 });
 return msg;
}

这里只是一个引子,可以再进一步封装成独立的组件,时间允许时,会再改造。

原文地址:https://www.cnblogs.com/xtreme/p/5334728.html