안녕하세요. 다음 코드 스 니펫을 가지고 있습니다.JSF 1.2 : a4j : selectOneRadio가 예상대로 작동하지 않습니다.
그 뒤에있는 생각은 제가 선택을하고 싶다는 것이며 그 선택에 따라 양식에 몇 가지 추가 필드를 렌더링하고 싶습니다.
사용자가 "예"라고 대답하면 추가 필드를 채워야합니다. 다른 필드 (ajaxSingle = "false")에 사용자 입력을 유지하고 사용자가 전체 양식을 채울 때까지 모델을 업데이트하고 유효성 검사기를 실행하지 않으려 고하기 때문에이 a4j : 지원 부분이 있습니다 (즉 치 = "true"). . 표시되는 양식 구성 요소를 제어하기 때문에 하나의 속성 "bean.answer"(a4j : actionparam) 만 업데이트하려고합니다.
<h:form id="form">
...
<h:selectOneMenu id="question"
value="#{bean.answer}"
required="true">
<f:selectItem itemLabel="No" itemValue="false" />
<f:selectItem itemLabel="Yes" itemValue="true" />
<a4j:support event="onchange"
ajaxSingle="false"
immediate="true"
reRender="form">
<a4j:actionparam name="question"
value="$('form:question').value"
assignTo="#{bean.answer}"
noEscape="true"/>
</a4j:support>
</h:selectOneMenu>
...
<h:outputText value="Additional field"
styleClass="boldedFont"
rendered="#{bean.answer}"/>
<h:inputText id="fieldId"
value="#{bean.additionalFieldValue}"
required="true"
rendered="#{bean.answer}"/>
...
</h:form>
위의 코드는 내가 원하는대로 작동합니다. 내 대답을 변경할 때마다 bean 값 # {bean.answer}이 업데이트되고 양식이 다시 표시되며 추가 필드가 표시되거나 사라집니다.
문제 :
내가 라디오 butons에 poplist (selectOneMenu를) 변경 (selectOneRadio)합니다. 시간에 selectOneMenu : 그래서 나의 새로운 코드에서 단순히 시간을 변경 selectOneRadio :
<h:form id="form">
...
<h:selectOneRadio id="question"
value="#{bean.answer}"
required="true">
<f:selectItem itemLabel="No" itemValue="false" />
<f:selectItem itemLabel="Yes" itemValue="true" />
<a4j:support event="onchange"
ajaxSingle="false"
immediate="true"
reRender="form">
<a4j:actionparam name="question"
value="$('form:question').value"
assignTo="#{bean.answer}"
noEscape="true"/>
</a4j:support>
</h:selectOneRadio>
...
<h:outputText value="Additional field"
styleClass="boldedFont"
rendered="#{bean.answer}"/>
<h:inputText id="fieldId"
value="#{bean.additionalFieldValue}"
required="true"
rendered="#{bean.answer}"/>
...
</h:form>
그러나이 코드 어쩌려 구`t 작동합니다. 내 대답을 바꿀 때마다 bean 값 # {bean.answer}는 같은 "false"값으로 업데이트되고 추가 필드는 나타나지 않습니다.
시간과 같은 행동을 달성 할 수있는 간단한 방법이 있나요 : selectOneMenu : 시간과 같은 selectOneRadio은?
감사
감사합니다. onchange 이벤트를 onclick으로 변경하면이 코드에 대한 수정이 한 번 더 필요합니다. 'value = "$ ('form : question '). value"'->'value = "this.value" 'form : question : 0','form : question : 1'과 같은 다른 ID를 가진 여러 입력으로 인해 – bary
여러분을 환영합니다. 미안, 나는 그 부분에 관심을 기울이지 않았다. – BalusC