E9表单建模:字段值变化事件与明细字段操作接口

需积分: 44 7 下载量 40 浏览量 更新于2024-08-06 收藏 1.2MB PDF 举报
"本文档介绍了在Cisco中型项目实战中如何使用E9API进行OA开发,特别是关于字段值变化触发事件的使用。E9表单建模前端接口API被封装在全局对象window.ModeForm中,提供了包括字段名称转换、获取和修改字段值等常用基础操作。此外,还详细说明了绑定字段值变化触发事件的两种方法:bindFieldChangeEvent用于主表字段,bindDetailFieldChangeEvent则针对明细字段。" 在Cisco中型项目实战中,E9OA开发接口扮演着关键角色,特别是对于表单交互和事件处理。`bindFieldChangeEvent` 和 `bindDetailFieldChangeEvent` 是两个重要的API,用于监控表单字段值的变化并执行相应的回调函数。 1. **bindFieldChangeEvent**: 这个方法用于监听主表字段值的变化。当指定的字段值发生改变时,所绑定的函数将会被调用。`fieldMarkStr` 参数是一个字符串,包含要监听的字段标识,多个字段间用逗号分隔。`funobj` 参数是一个函数,当字段值改变时,该函数会被调用,并接收三个参数:触发变化的DOM对象、字段标识和新的字段值。这允许开发者根据需求进行自定义处理,例如记录日志或更新其他字段。 示例代码: ```javascript ModeForm.bindFieldChangeEvent("field27555,field27556", function(obj, id, value) { console.log("ModeForm.bindFieldChangeEvent--", obj, id, value); }); ``` 2. **bindDetailFieldChangeEvent**: 与前者不同,这个方法专门用于监听明细字段值的变化,包括新添加和已存在的明细行。`fieldMarkStr` 参数同样是字段标识的字符串,但不支持下划线。`funobj` 参数的函数在明细字段值改变时被调用,传递的参数为字段标识、行标识和新的值。这在处理多行数据的交互时非常有用。 示例代码: ```javascript ModeForm.bindDetailFieldChangeEvent("field110,field111", function(id, rowId, value) { // 处理明细字段值变化的逻辑 }); ``` 在E9API中,还有一些基础操作接口,如: - **convertFieldNameToId**:将字段名称转换为字段ID,支持指定表单标示(主表或明细表)和是否返回带有"field"前缀的ID。 - **getFieldValue**:获取指定字段标示的字段值,适用于单个字段。 - **changeFieldValue**:修改字段值,自动触发联动效果。适用于所有字段类型,包括非浏览按钮和只读文本字段。 通过这些API,开发者可以构建动态、响应式的表单,实现复杂业务逻辑,如联动计算、验证和数据更新。在使用时,应遵循E9的单页模式,优先考虑使用API接口而非直接操作DOM,以确保代码的稳定性和兼容性。