javascript-ajax-jsf-bean交互
我有一个javascript-ajax-jsf-bean交互,ajax,jsf-2,richfaces,Ajax,Jsf 2,Richfaces,我有一个selectBooleanCheckbox(CB)和两个inputTexts(IT1,IT2)都绑定到resp。豆田 选择CB时,我希望IT1和IT2的值设置为默认值并禁用,而取消选择CB时,IT1和IT2必须启用并清空 当时我试着这样做: <script type="text/javascript"> //<![CDATA[ function myFunction() { if(document.getElementById("det
selectBooleanCheckbox
(CB)和两个inputText
s(IT1,IT2)都绑定到resp。豆田
选择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>
//
及
及
及
如果我创建一个新的对象/bean,一切都没问题
问题是当我想用f:ajax render=“IT1 IT2@this”execute=“@this”
编辑现有对象/bean时,页面会被重新加载,旧值会覆盖javascript函数设置的值
IT2的值没有直接绑定到bean(value=“#{(bean.CB==false)?detailModel.IT2:”“}”
)。这是因为在显示之前必须对其进行修改
我希望你能理解我对这个问题的描述,并能帮助我解决它 对复选框使用ActionListener,并重置listener方法中的有界复选框值(最好将此方法放置在现有的action bean类中),还使用render属性获取这些输入字段的当前值
<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>