a4j:ajax event =“change”在第一次单击时不起作用,但在第二次单击时不起作用

时间:2013-09-11 05:37:34

标签: jsf-2 richfaces ajax4jsf

我有一张表格,使用带有丰富面孔的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>

1 个答案:

答案 0 :(得分:0)

  

onchange - 当此元素失去焦点并且自获得焦点后其值已被修改时执行的Javascript代码。 (docs

也许不幸的是,命名变更事件并不会在您期望的时候触发。如果需要,请使用click事件并检查值是否实际更改。