开发者中心包含此范例模板(特定条件下取消删除记录),请前往开发者中心下载学习。
概要
本次介绍于2016年5月升级时(仅提供日文页面)添加的删除事件的取消功能。
以前,因为无法取消删除事件,无法通过JavaScript对删除进行控制。使用本次新增的功能,例如可以做这样的自定义:在没有经过删除可否判决的情况下不允许删除。
具有取消功能的删除事件有以下两个。
那么,接下来边写代码边试。
准备应用
可使用任意应用,但里面要包含以下字段。
字段名称 | 字段类型 | 字段代码 | 项目与顺序 |
---|---|---|---|
删除许可 | 复选框 | delete_flag | 允许 |
这样,应用准备就完成了。然后添加一条记录。
范例代码
那么,我们就来试一下。
本次升级后,对以下两个事件添加了取消删除的功能。
app.record.detail.delete.submit
app.record.index.delete.submit
只有在以上事件句柄内执行如下3个处理的时候可使用取消删除功能。
1. return false时
2. 给event.error设置错误信息,return event
3. 返回thenable的对象时,resolve(false)或者设置event.error后resolve(event)
这次的话是给第2个event.error设置错误信息然后return event。
(function() { "use strict"; var events = ["app.record.detail.delete.submit", "app.record.index.delete.submit"]; kintone.events.on(events, function(event) { var record = event["record"]; if (record["delete_flag"]["value"].length === 0) { event.error = "删除操作未经允许!"; return event; } }); })();
动作确认
那么,就把代码放到kintone进行运行看看吧。
在没有勾选“允许”字段的情况下,在记录详情页面按一下“删除”看看。
如果页面弹出错误信息,删除处理被取消的话,就表示成功了。
反之,在勾选“允许”的情况下删除看看。记录成功被删除了。
最后
虽然这次没有接触到Promise,但是如果在删除记录的同时,相关的记录也要一起删除时,使用错误处理(ErrorHandling)会比较容易吧。
请务必尝试一下。
本Tips在2016年5月版中确认过。