根据Primefaces中另一个selectOneMenu中选择的值隐藏/显示selectOneMenu

根据Primefaces中另一个selectOneMenu中选择的值隐藏/显示selectOneMenu,primefaces,Primefaces,我有一个带有rowEdit的Primefaces数据表。两列中各包含一个selectOneMenu控件。First SelectOne功能表具有单个或多个值。如果是单列,则第二列应包含selectOneMenu;如果是多列,则第二列应包含pickList。 最初,根据bean中设置的第一个selectOneMenu中的值,第二列显示为selectOneMenu或pickList。但当用户更改第一个selectOneMenu中的值时,我希望第二个selectOneMenu或pickList在第二列

我有一个带有rowEdit的Primefaces数据表。两列中各包含一个selectOneMenu控件。First SelectOne功能表具有单个或多个值。如果是单列,则第二列应包含selectOneMenu;如果是多列,则第二列应包含pickList。 最初,根据bean中设置的第一个selectOneMenu中的值,第二列显示为selectOneMenu或pickList。但当用户更改第一个selectOneMenu中的值时,我希望第二个selectOneMenu或pickList在第二列中可见。这是我尝试使用JQuery实现的,但没有成功。下面是代码

<p:cellEditor>
<f:facet name="output">
     <h:outputLabel value="#{bean.INPUTTYPE}" />
    </f:facet>

<f:facet name="input">
        <p:selectOneMenu id="inputType" value="#{bean.InputType}" >
        <f:selectItems value="#{beanDetails.inputTypes}"></f:selectItems>
            <p:ajax event="change" oncomplete="inputTypeChanged(#{rowIndex})"/> 
        </p:selectOneMenu>
    </f:facet>
</p:cellEditor> 
</p:column>


<p:column>
    <f:facet name="header">
            <h:outputLabel value="Default Value" />
     </f:facet>

     <p:cellEditor>
    <f:facet name="output">
        <h:outputLabel value="#{bean.DEFAULTVALUE}"/>
    </f:facet>

    <f:facet name="input">
        <p:selectOneMenu id="distinctVals" value="#{bean.DEFAULTVALUE}" rendered="#{bean.fldType == 1}" >
            <f:selectItems value="#{bean.DISTINCT_VALUES}"/>
        </p:selectOneMenu>

        <p:pickList value="#{bean.PICK_VALUES}" id="pickVals" var="pickVals" itemLabel="#{pickVals}" itemValue="#{pickVals}" rendered="#{bean.fldType == 2}"/>
    </f:facet>   
</p:cellEditor> 
</p:column>


<script type="text/javascript">
    function inputTypeChanged(ind){
        var str = 'table_Details:' + ind + ':inputType_input';
        var selected = $(document.getElementById(str));

        if(selected.val() == 'SINGLE'){
            str = 'table_Details:' + ind + ':distinctVals_input';
                selected = $(document.getElementById(str));
                $(selected).show();

                str = 'table_Details:' + ind + ':pickVals_input';
                selected = $(document.getElementById(str));
                $(selected).fadeOut();
        }else if(selected.val() == 'MULTIPLE'){
                str = 'table_Details:' + ind + ':distinctVals_input';
                selected = $(document.getElementById(str));
                $(selected).fadeOut();

                str = 'table_Details:' + ind + ':pickVals_input';
                selected = $(document.getElementById(str));
                $(selected).fadeIn();

        }
    }
</script>

功能输入类型更改(ind){
var str='表_详细信息:'+ind+':输入类型_输入';
所选变量=$(document.getElementById(str));
if(selected.val()=“SINGLE”){
str='表格详细信息:'+ind+':数据输入';
selected=$(document.getElementById(str));
$(选定).show();
str='表格详细信息:'+ind+':pickVals_输入';
selected=$(document.getElementById(str));
$(选定).fadeOut();
}else if(selected.val()=“MULTIPLE”){
str='表格详细信息:'+ind+':数据输入';
selected=$(document.getElementById(str));
$(选定).fadeOut();
str='表格详细信息:'+ind+':pickVals_输入';
selected=$(document.getElementById(str));
$(选定).fadeIn();
}
}

我使用的是primefaces-3.1.RC1。我的代码有什么问题吗?

相互依赖的验证在RowEditEvent中处理