我试图通过检查一些条件来显示一个弹出菜单,例如,如果没有选择显示弹出窗口等等,并且如果每次都很好提交页面。这是代码:
<h:commandButton onclick="if (#{moneyTransferManager.showPopup()})
#{rich:component('popup')}.show();" value="Devam" >
<rich:componentControl target="popup" operation="show" />
</h:commandButton>
<rich:popupPanel id="popup" modal="false" autosized="true" resizeable="false">
<f:facet name="header">
<h:outputText value="Simple popup panel" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#" onclick="#{rich:component('popup')}.hide();
return false;">
X
</h:outputLink>
</f:facet>
<p>
The popup panel is open and closed from the javascript function of component client side object. The following code
<a href="#" onclick="#{rich:component('popup')}.hide()">hide this panel</a>:
<f:verbatim>#</f:verbatim> #{rich:component('popup')}.hide()
</p>
</rich:popupPanel>
然后单击按钮后,弹出窗口显示一秒钟,然后刷新页面并弹出窗口丢失。为了防止我尝试刷新页面:
<f:ajax execute="@form" render="@none" />
但是如果一切都正确,如果我不需要弹出窗口我需要通过commandbutton提交页面,但是因为我说render = @“none”我不能这样做。那么我该怎么办呢?
由于
答案 0 :(得分:1)
<h:commandButton>
有一个默认按钮类型submit
,在点击时会提交封闭的h:form
。这就是您点击时页面刷新的原因。
<h:button>
应该用于java脚本用法。此外,如果type属性设置为button
,<h:commandButton>
将变为<h:button>
。
<h:button onclick="if (#{moneyTransferManager.showPopup()})
#{rich:component('popup')}.show();" value="Devam"/>
或者
<h:commandButton type="button" onclick="if (#{moneyTransferManager.showPopup()})
#{rich:component('popup')}.show();" value="Devam" >
另见: