根据判断条件,控制字段的编辑/必填属性
- 1、需求说明
- 2、实现方法
- 3、扩展知识点
- 1. 注册钩子事件,指定动作完成后触发
- 1.1 接口名称及参数说明
- 1.2 案例
- 2. 改变单个字段显示属性(只读/必填等)
- 2.1 参数说明
- 2.2 案例
1、需求说明
当字段“填报人”和字段“姓名”的值相同时,那么明细表1的“预计完成时间”必填(系统自动变更字段属性),否则“预计完成时间”可编辑不必填。
- “填报人” <> “姓名” :预计完成时间可编辑
- “填报人” = “姓名” :预计完成时间必填
2、实现方法
代码块
var tbrField = WfForm.convertFieldNameToId("tbr");
var xmField = WfForm.convertFieldNameToId("xm");
var yjwcsjDt1 = WfForm.convertFieldNameToId("yjwcsj","detail_1");
function ChangeDetailFieldAttr(fieldName,attr){
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i = 0;i<rowArr.length;i++){
WfForm.changeFieldAttr(fieldName+"_"+rowArr[i],attr);
}
}
jQuery(document).ready(function(){
//值触发
WfForm.bindFieldChangeEvent(tbrField+','+xmField,function(obj,id,value){
var tbrValue = WfForm.getFieldValue(tbrField);
var xmValue = WfForm.getFieldValue(xmField);
var attr = 2;
if(tbrValue == xmValue){
attr = 3;
}
ChangeDetailFieldAttr(yjwcsjDt1,attr);
});
//新增明细行完成后执行
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
var tbrValue = WfForm.getFieldValue(tbrField);
var xmValue = WfForm.getFieldValue(xmField);
if(tbrValue == xmValue){
WfForm.changeFieldAttr(yjwcsjDt1+"_"+index,3);
}else{
WfForm.changeFieldAttr(yjwcsjDt1+"_"+index,2);
}
});
3、扩展知识点
1. 注册钩子事件,指定动作完成后触发
支持多次调用注册,按注册的先后顺序依次执行
类型 | 说明 |
---|---|
WfForm.ACTION_ADDROW | 添加明细行,需拼明细表序号 |
WfForm.ACTION_DELROW | 删除明细行,需拼明细表序号 |
1.1 接口名称及参数说明
registerAction: function(actionname, fn)
参数 | 参数类型 | 必须 | 说明 |
---|---|---|---|
actionname | String 明细行,需拼明细表序号 | 是 | 动作类型,详见上表 |
fn | Function | 是 | 触发事件 |
1.2 案例
//下标从1开始,明细1添加行触发事件,注册函数入参为新添加行下标
WfForm.registerAction(WfForm.ACTION_ADDROW+“1”, function(index){
alert(“添加行下标是”+index);
}); //下标从1开始,明细1添加行触发事件,注册函数入参为新添加行下标
//下标从1开始,明细2删除行触发事件
WfForm.registerAction(WfForm.ACTION_DELROW+“2”, function(arg){
alert(“删除行下标集合是”+arg.join(“,”));
}); //下标从1开始,明细2删除行触发事件
2. 改变单个字段显示属性(只读/必填等)
changeFieldAttr: function(fieldMark, viewAttr)
2.1 参数说明
参数 | 参数类型 | 必须 | 说明 |
---|---|---|---|
fieldMark | String | 是 | 字段标示,格式field${字段ID}_${明细行号} |
viewAttr | int | 是 | 改变字段的状态,1:只读,2:可编辑,3:必填,4:隐藏字段标签及内容,5:隐藏字段所在行(行内单元格不要存在行合并) |
2.2 案例
WfForm.changeFieldAttr(“field110”, 1); //字段修改为只读
WfForm.changeFieldAttr(“field110”, 4); //字段标签以及内容都隐藏,效果与显示属性联动隐藏一致,只支持主表字段