2015-10-06 4 views
1

Я новичок в AEM.Как отобразить, какое поле не было заполнено

Я работаю над формой лесов CQ5. Некоторые поля отмечены allowBlank = false, которые не позволяют автору обновлять форму до тех пор, пока они не будут обработаны.

Проблема состоит в том, что поля разбросаны по очень длинной форме, и мы хотим сказать пользователю имя поля, они должны идти заполнить.

Я не могу понять, как запустить JavaScript когда кнопка обновления нажата на эшафот.

ответ

2

В вашем диалоге, добавьте слушателя, чтобы зарегистрировать функцию обратного вызова для «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> 

Затем в файле JavaScript, что вы включаете в любое время используется компонент (например, путем добавления клиентской библиотеки к компоненту), вы можете написать необходимый вам JavaScript. Например:

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; 
    } 
}; 

Ссылка виджеты API для подробностей относительно того, что вы можете сделать с объектами, которые проходят в качестве параметров, таких, как «Диалог» объект в приведенном выше примере: https://docs.adobe.com/docs/en/cq/5-6-1/widgets-api/index.html

Смежные вопросы