留言板

How to call button on JSF page from javascript

German Tugores,修改在12 年前。

How to call button on JSF page from javascript

Junior Member 帖子: 33 加入日期: 12-3-1 最近的帖子
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
David H Nebinger,修改在12 年前。

RE: How to call button on JSF page from javascript

Liferay Legend 帖子: 14919 加入日期: 06-9-2 最近的帖子
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
Neil Griffin,修改在12 年前。

moved thread to Liferay Faces forum

Liferay Legend 帖子: 2655 加入日期: 05-7-27 最近的帖子
moved thread to Liferay Faces forum
thumbnail
Neil Griffin,修改在12 年前。

RE: How to call button on JSF page from javascript

Liferay Legend 帖子: 2655 加入日期: 05-7-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
German Tugores,修改在12 年前。

RE: How to call button on JSF page from javascript

Junior Member 帖子: 33 加入日期: 12-3-1 最近的帖子
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.