首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在组件对话框中添加名为“listeners”的新节点,而不使用dialog.xml文件

如何在组件对话框中添加名为“listeners”的新节点,而不使用dialog.xml文件
EN

Stack Overflow用户
提问于 2017-08-29 14:40:25
回答 2查看 835关注 0票数 0

实际上,我正在使用“提交前”侦听器对我的选择框进行一些验证,我提供了以下链接:https://helpx.adobe.com/experience-manager/using/classic_dialog_validation.html

但是“提交前”方法只在我放的时候调用,对话监听器只在对话根级别调用。

如何在对话框根级别放置对话监听器(我在我的项目中检查没有dialog.xml文件,他们只使用java代码来构造组件对话框)。

有人能在这方面帮我吗?enter image description here

对话框属性构造代码:

@DialogField(name ="./validateProgram",

fieldLabel =“验证程序”,

代码语言:javascript
复制
fieldDescription = "(synchronized)",

        additionalProperties = {
                 @Property(renderIn = Property.RenderValue.TOUCH,
                                name = "validation",
                                value = "validation-program")
                 },

         listeners = {
             @Listener(name ="beforesubmit",
                          value = "function(dialog){" + 
                        "return programValidation.beforeSubmit(dialog);"+ 
                       "}")
                    })

       @Selection(
                type ="select",
                optionsProvider = " ",
                dataSource = "/resourcetype/data")

       public final String validateProgram;

Java脚本代码:

window.onload =函数(){

代码语言:javascript
复制
 programValidation.init();

};

var函数程序验证||( programValidation= ($){

代码语言:javascript
复制
function initialize() {
};

function validate() {
    alert("inside validate method");
    var res = true;
    return res;
};

return {
    beforeSubmit: validate,        
    init: initialize
}

})(jQuery);

EN

回答 2

Stack Overflow用户

发布于 2017-08-30 12:45:04

您正在使用cq component maven plugin这是一条非常重要的信息来回答您的问题。

我以前没有使用过这个插件,但在您的示例中,我假设您正在寻找Listener注释,您可以在其中将名称设置为beforesubmit,将值设置为function(){alert(1)}

您可能必须在局部变量上设置注释,类似于注释对话框字段'@DialogField‘的方式,在插件的用法页面中可以找到更多文档:http://code.digitalatolson.com/cq-component-maven-plugin/usage.html

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2017-09-05 18:35:51

多谢你们的支持。找到以下方法来解决此问题。

我从两个侦听器(FIELD_LISTENER_LOAD_CONTENT和FIELD_LISTENER_SELECTION_CHANGED)中添加了ValidateFields方法

代码语言:javascript
复制
function ValidateFields(dialog) {
dialog.on("beforesubmit", function(e) {
   if(<condtion failed>)
    CQ.Ext.Msg.alert(CQ.I18n.getMessage("Error"), CQ.I18n.getMessage("<error message>"));
    return false;
   } else {
    return true;
   }
}, this);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45932351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档