Javascript 如何显示未填写的字段

Javascript 如何显示未填写的字段,javascript,aem,Javascript,Aem,我是AEM的新手 我正在做CQ5脚手架表格。有几个字段被标记为allowBlank=false,这会阻止作者在处理这些字段之前更新表单 问题是这些字段分散在一个很长的表单中,我们想告诉用户他们需要填写的字段的名称 我不知道在脚手架上单击更新按钮时如何运行javascript。在对话框中,添加一个侦听器以注册“beforesubmit”事件的回调,例如: <jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://

我是AEM的新手

我正在做CQ5脚手架表格。有几个字段被标记为allowBlank=false,这会阻止作者在处理这些字段之前更新表单

问题是这些字段分散在一个很长的表单中,我们想告诉用户他们需要填写的字段的名称


我不知道在脚手架上单击更新按钮时如何运行javascript。

在对话框中,添加一个侦听器以注册“beforesubmit”事件的回调,例如:

<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
          jcr:primaryType="cq:Dialog"
          title="Your Component"
          xtype="dialog">
    <items jcr:primaryType="cq:TabPanel">
...
    </items>
    <listeners
            jcr:primaryType="nt:unstructured"
            beforesubmit="function(dialog){return YourNamespace.validate(this);}" />

</jcr:root>
参考widgets API,了解如何处理作为参数传入的对象的详细信息,例如上面示例中的“对话框”对象:

YourNamespace = {};

YourNamespace.validate = function (dialog) {
    var buttonText = dialog.getField('./buttonText'),
        buttonUrl = dialog.getField('./buttonUrl'),
        isValid = true,
        validMsg = 'Validation Failed: You must fill out this field.';

    if(buttonText.getValue().length > 0 && buttonUrl.getValue().length === 0){
        isValid = false;
    }

    if(!isValid){
        CQ.Ext.Msg.show({title: 'Validation Failed', msg: validMsg, buttons: CQ.Ext.MessageBox.OK, icon: CQ.Ext.MessageBox.ERROR});
        return false;
    }
};