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('计算加班时间');
            }
        }

    });
});
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值