复选框取消选中并选中其他字段变为空白

时间:2017-07-27 15:44:32

标签: jquery jsf checkbox

<tr:table id="UserTable" width="100%" ......>
  <tr:selectBooleanCheckbox id="ctrl_select" value="#{user.isSelected}" autoSubmit="true" valueChangeListener="#{userAction.onUserSelected}" onchange="submit()"/>
  <tr:inputText id="effDate" simple="true" value="#{user.effectiveDate}" disabled="#{!user.isSelected}"/>

操作:基于业务逻辑的onUserSelect我正在设置生效日期。

1:当我选中其提交的复选框并启用effDate时 2:我清除日期
3:取消选中该复选框。我可以看到日期和残疾人 4.再次选中复选框,启用日期字段但是effDate为空。

我不希望effDate为空。我相信UpdateModel被调用。有没有办法不将值设置为空白?

1 个答案:

答案 0 :(得分:0)

您正在渲染组件 tr:inputText 并更新相同的组件。我怀疑会工作。

因为在更新时组件树中可能尚未添加/存在该组件。这是因为在您尝试更新 booleancheckbox 时,组件可能未添加到DOM树中。

因此,在底部使用不同的组件,例如面板或面板组,然后更新它。

JSF代码:

<tr:table id="UserTable" width="100%" ......>
      <tr:selectBooleanCheckbox id="ctrl_select" value="#{user.isSelected}" 
      autoSubmit="true" valueChangeListener="#{userAction.onUserSelected}" 
       onchange="submit()" update="effDatePanel"/>

<tr:panel id="effDatePanel">
   <tr:inputText id="effDate" simple="true" value="#{user.effectiveDate}" 
     disabled="#{!user.isSelected}"/>
</tr:panel>

希望它有所帮助!!