【发布时间】:2013-03-24 21:39:15
【问题描述】:
我想创建动态组件 (HtmlCommandLinks)。当我设置onClick 属性时,JSF 不知何故添加了额外的东西。所以它不会像我预期的那样触发我的javascript。
通过 FirBug 删除这些额外的东西后,它工作正常。
Application app = FacesContext.getCurrentInstance().getApplication();
HtmlCommandLink link = HtmlCommandLink)app.createComponent(HtmlCommandLink.COMPONENT_TYPE);
link.setId("link1");
link.setValue("ClickMe");
link.setOnclick("fireAlert('someText');");
但我看到这样的东西......
<a onclick="jsf.util.chain(this,event,'fireAlert(\'someText\')','mojarra.jsfcljs(document.getElementById(\'frmBody\'),{\'frmBody:j_idt15:link1\':\'frmBody:j_idt15:link1\'},\'\')');return false" id="frmBody:j_idt15:link1" h>ClickMe</a>
我想要的是……
<a onclick="fireAlert('someText')" id="frmBody:j_idt15:link1" h>ClickMe</a>
我正在使用icefaces。
为什么我不能将那个简单的文本值设置为我的onClick 值?
【问题讨论】:
-
为什么不尝试通过 XHTML 页面添加它们?我相信 mojarrah(JSF) 会一直这样做,它总是添加自己的处理特定的 javascript。