我有一个selectBooleanCheckbox
(CB)和两个inputText
s(IT1,IT2)都绑定到resp。豆田。
When CB is selected I want that the value of IT1 and IT2 are set to default values and disabled, while when the CB is deselected, IT1 and IT2 have to be enabled and emptied.
目前我尝试了这种方式:
<script type="text/javascript">
//<![CDATA[
function myFunction()
{
if(document.getElementById("detailForm:CB").checked)
{
document.getElementById("detailForm:IT2").value = "";
document.getElementById("detailForm:IT1").value = "00:01";
}
}
//]]>
</script>
和
<h:selectBooleanCheckbox
id="CB"
value="#{detailModel.afterObject.defaultDefinition}"
onclick="myFunction()"
disabled="#{detailModel.mode == detailModel.viewMode or !loggedUser.isAdmin()}">
<f:ajax render="IT1 IT2 @this" execute="@this"/>
</h:selectBooleanCheckbox>
和
<h:inputText
id="IT1"
value="#{bean.IT1}"
disabled="#{detailModel.mode == detailModel.viewMode or bean.CB}" />
和
<rich:calendar
id="IT2"
value="#{(bean.CB== false) ? detailModel.IT2 : ''}"
datePattern="yyyy-MM-dd"
enableManualInput="true"
disabled="#{detailModel.mode == detailModel.viewMode or bean.CB}"/>
</rich:calendar>
如果我创建一个新的对象/bean,那没关系。
问题是当我想编辑现有对象/bean时:f:ajax render="IT1 IT2 @this" execute="@this"
重新加载页面并且旧值覆盖由javascript函数设置的值......
IT2 的值不直接绑定到 bean ( value="#{(bean.CB== false) ? detailModel.IT2 : ''}"
)。这是因为它必须在显示之前进行修改。
我希望你能理解我对问题的描述,并能帮助我解决它。