У меня есть selectBooleanCheckbox
(CB) и два inputText
s (IT1, IT2), все ограниченные соответственно. бобовые поля.javascript - ajax - jsf - bean-взаимодействие
При выборе CB я хочу, чтобы значения IT1 и IT2 были установлены на значения по умолчанию и отключены, а когда CB отменен, IT1 и IT2 должны быть включены и опущены.
На данный момент я попробовал этот путь:
<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>
Все это нормально, если я создаю новый объект/компонент.
Проблема заключается в том, когда я хочу, чтобы изменить существующий объект/компонент: с f:ajax render="IT1 IT2 @this" execute="@this"
страница перезагружается и старые значения перезаписать значения, установленные яваскрипт функции ...
Значение IT2 не непосредственно связанный с фасолью (value="#{(bean.CB== false) ? detailModel.IT2 : ''}"
). Это необходимо, прежде чем показывать его.
Надеюсь, вы понимаете мое описание проблемы и можете помочь мне решить ее.