Вот мой код: dcNewForm.xhtmlКак вызвать функцию javascript при отображении диалога?
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:composition>
<h:panelGrid id="dcNewView">
<h:outputText value="Address" styleClass="arianeDialogLabel"/>
<p:inputTextarea id="newDCaddress" styleClass="arianeDialogInputTitle" label="Description" required="true" autoResize="false" style="resize:none" value="#{datacenterNewController.address}"/>
</h:panelGrid>
<script type="application/javascript">
var addresstxtarea = document.getElementById("createDCDialogForm:newDCaddress");
function initialize() {
// body
}
window.onload = function(){
initialize();
}
</script>
</ui:composition>
</html>
<html>
<p:dialog header="Create a new datacenter" widgetVar="dcCreateDialog">
<h:form id="createDCDialogForm">
<ui:insert name="createDatacenter" >
<ui:include src="/templates/dcNewForm.xhtml" />
</ui:insert>
<p:commandButton value="Save this datacenter" oncomplete="dcCreateDialog.hide();"/>
</h:form>
</p:dialog>
<html>
Сейчас я вызываю метод инициализации на window.onload. Но когда я вызываю тот же диалог для создания из другого диалога, я получаю TypeError: a имеет значение null. Поскольку я понял, что initialize() получает вызов, но не может получить document.ElementById (blahblah). поэтому я хочу вызвать метод инициализации только при загрузке панели Panel или создании диалога. Как достичь этого?
не Если ваш предмет/название будет _How вызвать JavaScript функция на событии onload? _ и вы говорите о onload ... из документа? Потому что это все ответы, но я думаю, что вы хотите иметь его при отображении панели или диалога? – Kukeltje
Да, правильно. Мне нужно вызвать метод javascript только при создании диалога. – Sagar
Pleasecreate минималистичный пример, без всяких картографических материалов Google, просто простой mcve usecase, см. [Ask] – Kukeltje