Im пытается определить очень простой ftl как элемент управления для поля формы рабочего процесса.Как изменить базовое поле управления Alfresco ftl (freemarker)?
Это код, в котором используется FTL:
<field id="myTes:myList" set="noderefs" mandatory="true" >
<control template="/org/alfresco/components/form/controls/myFTLExample.ftl" />
</field>
Это код FTL:
<#assign controlId = fieldHtmlId + "-cntrl">
<b>test</b>
<script type="text/javascript">//<![CDATA[
alert("${fieldHtmlId}"); //I can see the generated name of the field
alert(document.getElementById("${fieldHtmlId}")); //returns null
alert(YAHOO.util.Dom.get("${fieldHtmlId}")); //returns null
}
//]]></script>
Проблема:
я могу увидеть результат HTML на моем форма рабочего процесса. Сценарий также выполняется, и я получаю первое предупреждение. Я могу видеть имя поля как большую строку (где parte этой строки - это имя базового поля: myList.
Однако второе и третье предупреждения всегда возвращают null. Поэтому Im не удалось получить базовое поле, чтобы изменить/обновить его значение.
Что мне не хватает? Обратите внимание, что эта проблема не связана с асинхронным характером форм рабочего процесса, потому что, даже если я запускаю сценарий, когда пользователь нажимает кнопка (и в этом случае DOM все готово ... да я жду минут для него), я буду получать нуль также
Вы уверены, что идентификатор, сгенерированный в вашем dom, совпадает с $ {fieldHtmlId}? – Akah
Да, но я выяснил проблему. – user3643038
Хорошо, не могли бы вы разместить решение в качестве ответа на свой вопрос, чтобы каждый мог воспользоваться? – Akah