我有一张表格,使用带有丰富面孔的JSF。在表单中有两个单选按钮:“是”和“否”。默认选择为“是”。单击“否”时,文本区域应显示在下方。但事实并非如此。相反它出现在第二次点击;我首先单击“否”(默认为“是”)没有任何反应,然后单击“是”,现在它可以工作,下面的文本区域出现,但它会自动选择“否”。
以下是代码:
<h:outputLabel for="cheapest">Cheapest Flight?</h:outputLabel>
<h:selectOneRadio id="cheapest" value="#{myController.selectedItem.cheapest}" disabled="#{myController.showMode}">
<f:selectItems value="#{yesNoTypeItems.items}" />
<a4j:ajax event="change" render="@form" execute="@form" />
</h:selectOneRadio>
<h:outputLabel for="newArea" rendered="#{myController.selectedItem.cheapest == false}">New Text Area</h:outputLabel>
<h:inputTextarea id="newArea" rendered="#{myController.selectedItem.cheapest == false}" disabled="#{myController.showMode}"
value="#{myController.selectedItem.newArea}" style="width:300px;height:100px;">
</h:inputTextarea>
答案 0 :(得分:0)
onchange - 当此元素失去焦点并且自获得焦点后其值已被修改时执行的Javascript代码。 (docs)
也许不幸的是,命名变更事件并不会在您期望的时候触发。如果需要,请使用click事件并检查值是否实际更改。