Отключить текстовое поле в диалоге Touch UI cq - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу вызвать функцию JS при загрузке диалога cq, чтобы проверить, есть ли в поле что-то, если это так, отключить его из редакции. Я пробовал с проверкой, но он вызывается после того, как пользователи взаимодействуют с полем, мне нужен способ сделать это перед загрузкой. Возможно ли это?

<id
   jcr:primaryType="nt:unstructured"
   sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
   fieldLabel="ID"
   validation="is_empty" // DO THIS WHEN IS LOADED
   name="./id"
   required="{Boolean}true"/>

1 Ответ

0 голосов
/ 06 сентября 2018

Я могу придумать, как этого добиться, используя cq.authoring.dialog clientlib и jQquery

  • Создать клиентскую библиотеку с категориями как cq.authoring.dialog. Скрипты в этой клиентской библиотеке загружаются только в экземпляре автора .
  • Добавьте класс к текстовому полю с помощью атрибута granite:class, чтобы подключить текстовое поле с помощью скрипта в приведенном выше файле clientlib
          <id
            jcr:primaryType="nt:unstructured"
            sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
            fieldLabel="ID"
            granite:class="readonlySelector"
            name="./id"
            required="{Boolean}true"/>
  • Для использования granite:class вам необходимо включить указанное ниже пространство имен в dialog.xml. xmlns:granite="http://www.adobe.com/jcr/granite/1.0"
  • Обратите внимание на имя класса, зарегистрированное выше в DOM

enter image description here

$(document).on('foundation-contentloaded', function (e) {//event fires when dialog loads
    var $textField = $('.readonlySelector');
    if ($textField.val()) {//truthy check
        $textField.prop('disabled', true);//Greys the field
        $textField.prop('readonly', true);
    }
})
  • Серая и отключенная

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...