当子表中的某一行被删除时(即用户点击 delete 按钮),若要触发相应事件,您需要在子表中为 fieldname_remove 事件添加一个处理程序,其中 fieldname 是子表在父表声明中的字段名。
例如:
假设您的父 DocType 名为 Item,它有一个表字段链接到 Item Color DocType,声明名称为 color。
要“捕获”删除事件,请执行以下操作:
frappe.ui.form.on('Item Color', {
color_remove: function(frm) {
// You code here
// If you console.log(frm.doc.color) you will get the remaining color list
}
);
同样的方法也用于触发添加事件(当用户点击 add row 按钮时):
frappe.ui.form.on('Item Color', {
color_remove: function(frm) {
// You code here
// If you console.log(frm.doc.color) you will get the remaining color list
},
color_add: function(frm) {}
});
请注意,处理程序是在子 DocType 表 form.ui.on 上进行的,而不是在父 DocType 上,因此一个最小化的完整示例如下:
frappe.ui.form.on('Item',{
// Your client side handling for Item
});
frappe.ui.form.on('Item Color', {
color_remove: function(frm) {
// Deleting is triggered here
}
);
处理程序包括:
- fieldname_add(添加)
- fieldname_move(移动)
- fieldname_before_remove(移除前)
- fieldname_remove(移除)