Primefaces 在SelectOne菜单中选择值后立即显示对话框
当我在数据表内部使用时,我对p:selectonemenu有一个要求Primefaces 在SelectOne菜单中选择值后立即显示对话框,primefaces,Primefaces,当我在数据表内部使用时,我对p:selectonemenu有一个要求 <p:selectOneMenu value="#{buyerInProcessBean.subject}" id="buyerResponseId" > <f:selectItems value="#{buyerInProcessBe
<p:selectOneMenu value="#{buyerInProcessBean.subject}"
id="buyerResponseId" >
<f:selectItems
value="#{buyerInProcessBean.subjectMap[trans.decisionrule.ruleId]}"
var="subject" itemLabel="#{subject}" itemValue="#{subject}"></f:selectItems>
<f:selectItem itemLabel="Other" itemValue="Other"></f:selectItem>
</p:selectOneMenu>
如果我选择“其他”,则必须弹出一个对话框。否则,它不是强制性的
如何实现这种类型的要求?您应该将函数绑定到
事件的更改上,找出所需选项的值是否与应打开对话框的值匹配,并在这种情况下触发对话框。open()
请注意,Primefaces组件将
标记包装在一些div中,并在中间组件中输出选定的
,因此将事件附加到隐藏的
元素将不起作用。另一方面,例如,JSF
标记呈现
元素,因此将行为绑定到onchange
将触发所需的行为
观点:
<h:form id="form">
<p:selectOneMenu value="#{buyerInProcessBean.subject}" id="buyerResponseId" onchange="changeEvent(this)">
<f:selectItems value="#{buyerInProcessBean.subjectMap[trans.decisionrule.ruleId]}"
var="subject" itemLabel="#{subject}" itemValue="#{subject}" />
<f:selectItem itemLabel="Other" itemValue="Other" />
</p:selectOneMenu>
</h:form>
<p:dialog widgetVar="dialog">
<h:outputText value="Additional Data" />
</p:dialog>
您可以在中添加onSelect=“your dialogWidgetVar.show()”selectOneMenu@Ali:SelectOne菜单上没有onSelect属性。可能是一次更改,但我的要求是只有当我们选择“其他”对话框时才会弹出。否则它是可选的(无需弹出)
function changeEvent(element) {
var val = $(element).find('option:selected').text();
if(val === 'Other') {
dialog.show();
}
}