E8-HTML表单字段值改变时触发事件

整合系统原有的回调函数,然后统一调用同一个回调函数:

var ECSTM = {};

ECSTM.addFormValueChangeEvent = function(fnCallBack) {
	var oldCheckinput2 = window.checkinput2;
	var oldWfbrowvaluechange = window.wfbrowvaluechange;
	var oldOnWorkFlowShowTime = window.onWorkFlowShowTime;
	
	var _fieldId, _rowIndex, _value;
	
	// 文本框、下拉选择
	window.checkinput2 = function(eId, eSpanId, viewType) {
		// eId: field5847_0, eSpanId: field5847_0span, viewType: 0
		var fieldIdInfo = eId.split('_');
		_fieldId = fieldIdInfo[0];
		_rowIndex = fieldIdInfo[1];
		_value = $('#' + eId).val();
		fnCallBack(_fieldId, _rowIndex, _value);
		oldCheckinput2(eId, eSpanId, viewType);
	};
	
	// 浏览按钮(人力资源、部门、日期)
	window.wfbrowvaluechange = function(obj, fieldid, rowindex) {
		// obj: [object HTMLInputElement], fieldid: 5832, rowindex:
		_fieldId = 'field' + fieldid;
		_rowIndex = rowindex;
		_value = isNaN(parseInt(rowindex)) ? $('#' + _fieldId).val() : $('#' + _fieldId + '_' + rowindex).val();
		fnCallBack(_fieldId, _rowIndex, _value);
		oldWfbrowvaluechange(obj, fieldid, rowindex);
	};
	
	// 浏览按钮(时间)
	window.onWorkFlowShowTime = function(spanname, inputname, ismand, callBackFn) {
		oldOnWorkFlowShowTime(spanname, inputname, ismand, function(){
			var fieldIdInfo = inputname.split('_');
			_fieldId = fieldIdInfo[0];
			_rowIndex = fieldIdInfo[1];
			_value = $('#' + inputname).val();
			fnCallBack(_fieldId, _rowIndex, _value);
			callBackFn();
		});
	};
};

 

如何使用:

$(document).ready(function(){
	ECSTM.workflowId = $('input[name=workflowid]').val();
	ECSTM.nodeId = $('input[name=nodeid]').val();
	
	// 获取加班时数需要的字段,申请人,日期,开始时间,结束时间,外出加班,扣除就餐时间
	ECSTM.getHoursFields = ['field5943', 'field5946', 'field5947', 'field5948', 'field5952', 'field5953'];
	
	// 表单字段值改变回调函数
	ECSTM.addFormValueChangeEvent(function(_fieldId, _rowIndex, _value){
		// 如果是“HR004-加班申请流程 > 创建”节点
		if (ECSTM.nodeId == '207') {
			if (ECSTM.getHoursFields.indexOf(_fieldId) >= 0) {
				console.log('计算加班时间');
			}
		}

	});
});

 

猜你喜欢

转载自shuitao-cao.iteye.com/blog/2289005