다른 selectOneMenu에서 선택한 값에 따라 나는 rowEdit와 Primefaces 데이터 테이블이있다. 두 개의 열은 각각에 selectOneMenu 컨트롤을 포함합니다. 우선 selectOneMenu의 값은 SINGLE, MULTIPLE입니다. SINGLE이면 두 번째 열에 selectOneMenu가 있어야하고 MULTIPLE이면 두 번째 열에 pickList가 있어야합니다. 처음에 두 번째 열은 bean에 설정된 첫 번째 selectOneMenu의 value 값에 따라 selectOneMenu 또는 pickList와 함께 표시됩니다. 그러나 사용자가 첫 번째 selectOneMenu에서 값을 변경하면 두 번째 열에서 두 번째 selectOneMenu 또는 pickList가 표시되기를 원합니다. 이 JQuery를 사용하여 시도했지만 성공하지 못했습니다. 아래 코드는 ......숨기기/표시 selectOneMenu는 Primefaces
<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>
primefaces-3.1.RC1을 사용하고 있습니다. 내 코드에 문제가 있습니까?