我有一个自定义多字段组件,最多可将5个元素应用于“添加项目”按钮。
我需要在对话框的“确定”按钮中添加类似的侦听器逻辑,以检查是否添加了最小数量的项目(3)。
如何实现?我没有找到任何示例代码来向按钮添加监听器代码..
答案 0 :(得分:1)
我在Dialog的beforesubmit事件中使用监听器完成了同样的事情(请参阅http://dev.day.com/docs/en/cq/current/widgets-api/index.html之前的CQ.Dialog提交 - 搜索“Dialog”):
<listeners
jcr:primaryType="nt:unstructured"
beforesubmit="function(dialog){return myNamespace.myCustomFunction(dialog);}"/>
然后,通过客户端库包含在页面上的自定义JavaScript函数可能是这样的:
myNamespace = {};
myNamespace.myCustomFunction = function (dialog) {
var isValid = function () {
var valStatus = true;
... custom JavaScript/jQuery to check if 3 items exist ...
return valStatus;
};
if (!isValid()) {
CQ.Ext.Msg.show({title: 'Validation Error', msg: 'Must contain at least 3 items!', buttons: CQ.Ext.MessageBox.OK, icon: CQ.Ext.MessageBox.ERROR});
return false;
} else {
return true;
}
}