我本周遇到了这个确切的问题:)
似乎默认情况下您不能限制编辑器可以输入的项目数.为了解决这个问题,我创建了一个位于的Multifield.js的叠加层
/apps/cq/ui/widgets/source/widgets/form/MultiField.js
Run Code Online (Sandbox Code Playgroud)
我在多字段下的fieldConfig节点上添加了对'limit'属性集的检查.如果存在且不为零,则将其用作用户可以添加的最大字段数.
不希望通过发布完整叠加层来解决版权问题,但我所做的更改如下:
在构造函数(第53行)中,添加一个检查以从fieldConfig节点获取limit的值:
if (!config.fieldConfig.limit) {
config.fieldConfig.limit = "0";
}
Run Code Online (Sandbox Code Playgroud)
在"+"按钮的处理程序(第71行)中,将函数更改为以下内容:
if(config.fieldConfig.limit == 0 || list.items.getCount() <= config.fieldConfig.limit) {
list.addItem();
} else {
CQ.Ext.Msg.show({
title: 'Limit reached',
msg: 'You are only allowed to add ' + config.fieldConfig.limit +
' items to this module',
icon:CQ.Ext.MessageBox.WARNING,
buttons: CQ.Ext.Msg.OK
});
}
Run Code Online (Sandbox Code Playgroud)
我没有删除按钮,而是创建了一个弹出窗口,通知编辑器'N是允许的最大字段数'.
简单的改变,但做的工作!希望这是有用的.