掲示板

How to call button on JSF page from javascript

12年前 に German Tugores によって更新されました。

How to call button on JSF page from javascript

Junior Member 投稿: 33 参加年月日: 12/03/01 最新の投稿
Hi everyone,

I'm developing a portlet using JSF + Icefaces, I'm trying to execute a method in a managed bean calling it from the javascript onclick event of a button.

This is the code in the xhtml page:

<ui:define name="component-example">
<ice:portlet styleClass="formRadioPrincipal">
<h:form id="formRadioP">
<h:panelGrid columns="1" styleClass="panelPrincipal">
<script type="text/javascript">
function exampleScript() {
document.getElementById("btnOculto").click();
}
</script>
<h:outputText value="Programas radiales que nos acompanan"
styleClass="tituloRadio" />
<h:outputText
value="Haga click en un departamento para ver los diferentes programas"
styleClass="tituloRadio2" />
<ice:graphicImage id="giMapa" ismap="true"
url="/css/images/mapaV2.gif" styleClass="imagenMapa"
usemap="#map1" />

<map name="map1">
<area shape="rect" coords="68,100,149,130"
onclick="exampleScript()" title='Salto' />
</map>

<h:commandButton id="btnOculto" value="BotonIr"
actionListener="#{principalMB.pruebaJS}"/>
</h:panelGrid>
</h:form>
</ice:portlet>
</ui:define>

And the code in the managed bean:

public void pruebaJS(ActionEvent e){
System.out.println("Same text in console");
}

Calling the exampleScript() function works... I've put an alert() to test it and the call to the function works well.

I think the problem is in the document.getElementById("btnOculto"), I don't know how I should reference the "btnOculto" button from javascript?
thumbnail
12年前 に David H Nebinger によって更新されました。

RE: How to call button on JSF page from javascript

Liferay Legend 投稿: 14916 参加年月日: 06/09/02 最新の投稿
All IDs defined in the basic page, when rendered, are fully namespaced to guarantee uniqueness. If you view the source on the generated page you'll see that your ID will end with btnOculto, but that will not be the actual id of the element.

Finding by ID is not going to work well because of this.
thumbnail
12年前 に Neil Griffin によって更新されました。

moved thread to Liferay Faces forum

Liferay Legend 投稿: 2655 参加年月日: 05/07/27 最新の投稿
moved thread to Liferay Faces forum
thumbnail
12年前 に Neil Griffin によって更新されました。

RE: How to call button on JSF page from javascript

Liferay Legend 投稿: 2655 参加年月日: 05/07/27 最新の投稿
You might want to check for JavaScript errors in a console like FireBug.

Here are some links to research for alternatives to getElementById():
http://stackoverflow.com/questions/4275071/javascript-getelementbyid-wildcard
http://stackoverflow.com/questions/1206739/find-all-elements-on-a-page-whose-element-id-contains-a-certain-text-using-jquer
12年前 に German Tugores によって更新されました。

RE: How to call button on JSF page from javascript

Junior Member 投稿: 33 参加年月日: 12/03/01 最新の投稿
Hi again,

I checked the button's name with firebug, changed the name and it's working fine now! Thank you both for your replies.