在selectOneMenu更改的同一窗口中打开一个对话框

Jav*_*ava 3 javascript jquery jquery-selectors primefaces jsf-2

我有一个jsf页面,我有一个selectOneMenu,我想打开一个关于selectOneMenu更改的对话框.

作为一个例子,如果用户从jsf selectOneMenu中选择一个值="被动",它应该在同一页面上打开一个对话框或一个灯箱,我想在这里显示一个小的jsf表格.(请点击那个小图像(是的,就像这个对话框我想在selectOneMenu中选择特定值后打开)) http://www.primefaces.org/showcase-labs/ui/dialogLogin.jsf

我还希望将提交的数据保存在我的支持bean中,以便稍后将其存储到数据库中.

我不知道如何在同一窗口中从支持bean打开一个对话框或灯箱,因为我们将使用valueChangeListener事件或使用ajax事件来识别值更改.

我能够识别从selectOneMenu(DropdownMenu)中选择的值,但是不知道如何在选择特定值时打开对话框.

<h:outputLabel
            value="* Country: "/>
        <h:selectOneMenu
            id="someSelect"
            value="#{testController.countryName}"
            required="true">
            <f:selectItem
                itemLabel="Select Country"
                itemValue=""/>
            <f:selectItems
                value="#{testController.countryNamesSelectItems}"/>
             </h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

Supoose我们在selectItems中有2个选项作为India和Austrlia,那么如果用户选择India,则应该在用户需要填写某些信息的同一页面上打开一个对话框,如果他来自印度,则需要提交(如此处的示例 http: //www.primefaces.org/showcase-labs/ui/dialogLogin.jsf(请点击那个小图片(是的,就像我想在selectOneMenu中选择特定值后打开的对话框))用户将输入他的用户名和密码并提交数据)

希望这可以帮助

我们如何检查primefaces,selectOneMenu的选择值使用java脚本(jquery)就像在这里为richfaces做的那样 t:selectOneMenu如何使用java脚本获取选定的值?

Mat*_*ndy 5

您可以使用onchange属性h:selectOneMenu来打开对话框:

 <h:selectOneMenu
        id="someSelect"
        value="#{testController.countryName}"
        required="true"
        onchange="dlg.show()">
Run Code Online (Sandbox Code Playgroud)

具有dlg作为widgetVar属性的值p:dialog.这将在服务器命中之前打开对话框.

如果要完成ajax请求打开对话框,可以使用p:ajax以下oncomplete属性:

<p:ajax update=".." process=".." oncomplete="dlg.show()"/>
Run Code Online (Sandbox Code Playgroud)

或者,如果要根据所选值打开对话框,可以使用包装函数:

function showDialog() {
 if($('#IdOfYourSelectOneMenu').val() == 'India') {
   dlg.show();
 }
}
Run Code Online (Sandbox Code Playgroud)

有:

<p:ajax update=".." process=".." oncomplete="showDialog()"/>
Run Code Online (Sandbox Code Playgroud)