Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何不显示选择“p:对话框”;选择一个";选择PrimeFaces中的项目_Jsf_Primefaces_Jsf 2 - Fatal编程技术网

Jsf 如何不显示选择“p:对话框”;选择一个";选择PrimeFaces中的项目

Jsf 如何不显示选择“p:对话框”;选择一个";选择PrimeFaces中的项目,jsf,primefaces,jsf-2,Jsf,Primefaces,Jsf 2,我有一个p:selectOne菜单,在这个值列表中,第一个值是“selectone”,其他值是从db中获取的实际值 当用户选择其他值时,将显示一个对话框并获取相应的值,但是,如果用户选择“选择一个”,则也将显示该对话框。在这里,当用户从下拉列表中选择“选择一个”时,我不想显示对话框 Xhtml代码: <p:selectOneMenu id="drp_modify" value="#{BackingBean.Name}" panelStyle="width:180px"

我有一个p:selectOne菜单,在这个值列表中,第一个值是“selectone”,其他值是从db中获取的实际值

当用户选择其他值时,将显示一个对话框并获取相应的值,但是,如果用户选择“选择一个”,则也将显示该对话框。在这里,当用户从下拉列表中选择“选择一个”时,我不想显示对话框

Xhtml代码:

<p:selectOneMenu id="drp_modify"
        value="#{BackingBean.Name}" panelStyle="width:180px"
        effect="fade" style="width:180px" filter="true"
        filterMatchMode="startsWith" onchange="PF('dlg_modify').show();"
        title="Add">
        <p:ajax listener="#{BackingBean.onNameChange}"
            update="Name_ID, address" />
        <f:selectItem itemLabel="Select One" itemValue="" noSelectionOption="true" />
        <f:selectItems value="#{BackingBean.nameItemList}" />
    </p:selectOneMenu>

<p:dialog header="Modify" widgetVar="dlg_modify" resizable="false">

//// some code

</p:dialog>

////一些代码

您可以使用JavaScript检查组合框的当前值

代替
onchange=“PF('dlg_modify').show();”
您可以编写:

onchange="if(document.getElementById('yourFormId:drp_modify_input').value != '') PF('dlg_modify').show();"

其中,
yourFormId
是表单的ID,条件是作为
f:selectItem
中的
itemValue
参数给定的值。在您的情况下,它是

@Neerajkumar,即使您设置了表单的id?奇怪,对我来说它工作得很好