Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript-ajax-jsf-bean交互_Ajax_Jsf 2_Richfaces - Fatal编程技术网

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>