Ich versuche, eine sehr einfache ftl als Steuerelement zu einem Workflow-Formularfeld zu definieren.Wie ändere ich das Basisfeld eines Alfresco ftl (Freemarker) Controls?
Dies ist der Code, wo der FTL verwendet wird:
<field id="myTes:myList" set="noderefs" mandatory="true" >
<control template="/org/alfresco/components/form/controls/myFTLExample.ftl" />
</field>
Dies ist der FTL-Code:
<#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>
Das Problem:
Ich kann auf die resultierende html sehen meine Workflow-Formular. Das Skript wird ebenfalls ausgeführt und ich erhalte die erste Warnung. Ich kann den Namen des Feldes als eine große Zeichenkette sehen (wobei parte dieser Zeichenkette der Name des Basisfeldes ist: myList.
Allerdings gibt die zweite und die dritte Warnung immer null zurück. So kann ich nicht bekommen das Basisfeld, um seinen Wert zu ändern/zu aktualisieren
Was fehlt mir? Bitte beachten Sie, dass dieses Problem nicht mit der Async-Eigenschaft der Workflow-Formulare zusammenhängt, weil ich das Skript ausführen kann, wenn ein Benutzer klickt auch eine Schaltfläche (und in diesem Fall ist der DOM ganz eingestellt ... ja ich Minuten warten, bis es), werde ich null erhalten
Sind Sie sicher, dass die in Ihrem Dom generierte ID mit $ {fieldHtmlId} übereinstimmt? – Akah
ja, aber ich habe das Problem herausgefunden. – user3643038
Ok, könnten Sie bitte die Lösung als Antwort auf Ihre Frage posten, damit jeder davon profitieren kann? – Akah