Jquery-判断form表单数据是否变化

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1、思路为:修改时点击一行datagrid,并进行页面跳转数据绑定,在提交form时,序列号form表单,并重新获取datagrid选中的行数据,进行数据比较。</span>

	/**
	 * 判断form内属性值是否被修改
	 * 
	 * @param jsonForm 对应修改的form序列化后的json数据
	 * @param row 对应datagrid选中的数据源
	 * 
	 * @Return true  存在修改项
	 * 		   false 不存在修改项
	 */
	isModified:function(jsonForm,row){
		for(key in jsonForm){
			//form中存在,但数据源datagrid中不存在
			if(row[key] == undefined){
				continue;
			}
			//form中""或null,但数据源datagrid中为null或""时,不进行比较
			if(!((jsonForm[key] == null || jsonForm[key] == '') && (row[key] == null || row[key] == ''))){
				//如果值不同,则返回true
				if(jsonForm[key] != row[key])
					return true;
			}
		}
		return false;
	}

2、获取变化的值前后变化信息,由于项目需要记录值变更记录,并保存column中英文信息,如下:

/**
	 * 获取form被修改信息
	 * 
	 * @param jsonForm 对应修改的form序列化后的json数据
	 * @param row 对应datagrid选中的数据源
	 * @param columnJSModel 为表单form中name属性中英对照js,需在update.jsp中引用此js文件
	 * 
	 * @Return json  数据如:[{"updateColumn":"loanRatio","updateColName":"额比例","updateContent":"由11变更为100.00"},
	 * 			{"updateColumn":"loanQuotaTypeName","updateColName":"比例形式","updateContent":"由 卡 变更为 实物"}]
	 * 
	 */
	getModifiedField:function(jsonForm,row,columnJSModel){
		var modifiedArry = [];
		var jsonArrStr = '';
		for(key in jsonForm){
			//form中存在,但数据源datagrid中不存在
			if(row[key] == undefined){
				continue;
			}
			//form中""或null,但数据源datagrid中为null或""时,不进行比较
			if(!((jsonForm[key] == null || jsonForm[key] == '') && (row[key] == null || row[key] == ''))){
				//如果值不同,则返回true
				if(jsonForm[key] != row[key]){
					var jsonObj = {};
					
					jsonObj.updateColumn = key;
					jsonObj.updateColName = columnJSModel[key];
					jsonObj.updateContent = '由'+ row[key] + '变更为' + jsonForm[key];
					
					modifiedArry[modifiedArry.length] = jsonObj;
				}
			}
		}
		jsonArrStr = JSON.stringify(modifiedArry);
		//console.log(jsonArrStr);
		return jsonArrStr;
	}

3、其中的columnJSModel为中英对照JS实体,ratio、qutaTypeName分别对应form中的name属性名,如下:

var policyColumn = {
		
		ratio : '比例',
		quotaTypeName : '比例形式'
		
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值