开发者中心包含此范例模板(选择是否为可编辑字段),请前往开发者中心下载学习。
概要
在实际运用时,可能存在这样的情况:每个部门申请时需要填写的内容都不太一样,但为了统一管理只准备一份申请表。
因此,有些同事可能会因为误操作在不需要填的地方填了内容。
这次就为大家介绍如何解决这个烦恼。通过自定义来实现根据不同的情况勾选字段是否可编辑,就可满足不同部门不同情况的需要了。勾选不需要的项目时就不必填写了。
※掌握了这个自定义技巧,可以应用于很多情况哦。比如,根据选择的部门自动灰掉所有不需要的字段,这样可以引导用户正确填写。可用于申请表,调查问卷等。请大家掌握了自己挑战一下吧。
实现效果
当勾选类型中任何项目类型后,相对应的字段变成灰色不可编辑(初始状态都默认为可编辑状态)
实现的方法
1.准备需要的字段
字段名称 | 字段类型 | 字段代码 | 项目名称 |
---|---|---|---|
类型 | 复选框 | type | 单行文本框 |
下拉菜单 | |||
日期 | |||
选择用户 | |||
单行文本框 | 单行文本框 | string | |
下拉菜单 | 下拉菜单 | dropdown | |
日期 | 日期 | date | |
选择用户 | 选择用户 | selectuser |
2.实现功能代码
(function() { "use strict"; function checkType(event) { // 定义记录的事件 var record = event.record; // 定义字段值 var field = {'单行文本框': "string", '下拉菜单': "dropdown", '日期': "date", '选择用户': "selectuser"}; // 将字段的编辑状态设置为可编辑(true:不可编辑,false:可编辑) for (var i in field) { record[field[i]]['disabled'] = false; } // 类型值的循环 for (var j in record['type']['value']) { var fieldType = record['type']['value'][j]; // 判断类型值 switch (fieldType) { // 类型的值为"单行文本框"时,将单行文本框的字段状态设定为不可编辑 case '单行文本框': record['string']['disabled'] = true; break; // 类型的值为"下拉菜单"时,将下拉菜单的字段状态设定为不可编辑 case '下拉菜单': record['dropdown']['disabled'] = true; break; // 类型的值为"日期"时,将日期的字段状态设定为不可编辑 case '日期': record['date']['disabled'] = true; break; // 类型的值为"选择用户"时,将选择用户的字段状态设定为不可编辑 case '选择用户': record['selectuser']['disabled'] = true; break; } } // 必须要 return 事件 return event; } // 在编辑记录,编辑一览的记录的情况,发生事件 kintone.events.on(['app.record.edit.show', 'app.record.index.edit.show'], checkType); // 在创建记录,编辑记录,编辑一览的记录的情况,改变类型的值时,发生事件 kintone.events.on(['app.record.create.change.type', 'app.record.edit.change.type', 'app.record.index.edit.change.type'], checkType); // 在创建记录,编辑记录,编辑一览的记录的情况,保存记录时,发生事件 kintone.events.on(['app.record.create.submit', 'app.record.edit.submit', 'app.record.index.edit.submit'], checkType); })();