js函数在cakephp中使用onClick处理onLoad

时间:2015-02-28 22:57:27

标签: javascript jquery cakephp

在cakephp中,当我加载页面并选择启用/禁用文本字段的选项时,下面的代码工作正常。

问题是,当我在其他地方点击cakephp按钮刷新页面时,再次启用以前设置为禁用的文本字段。

如何在页面刷新时满足禁用的文本字段?

window.onload=function(){
       if(val != 3) {
        document.getElementById("startdatebox").disabled = true;
        document.getElementById("enddatebox").disabled = true;
    } else {
        document.getElementById("startdatebox").disabled = false;
        document.getElementById("enddatebox").disabled = false;
    }

    } ​ 

   function myFunc(val) {
    if(val != 3) {
        document.getElementById("startdatebox").disabled = true;
        document.getElementById("enddatebox").disabled = true;
    } else {
        document.getElementById("startdatebox").disabled = false;
        document.getElementById("enddatebox").disabled = false;
    }

 //  alert( document.getElementById("dateRange").value);

}

...
       echo $this->Form->input('startDate',array('id'=>'startdatebox','label' => 'Start Date','class'=>'datepicker', 'type'=>'text','style'=>'width:100px;height:30px','value' => $datestart));

 echo $this->Form->input('endDate',array('id'=>'enddatebox','label' => 'End Date','class'=>'datepicker', 'type'=>'text','style'=>'width:100px;height:30px','value' => $dateend));




    $selectoption=array(1=>'Today',0=>'Fortnight',2=>'Monthly',3=>'Custom Range'); 
       echo $this -> Form -> input('dateRange', 
               array('id'=>'dateRange2','label' => '<h6>Date Range</h6>','type' => 'radio', 
              'value' =>$dateSelect,'options' =>  $selectoption,  'onclick'=> 'myFunc(this.value)'));

1 个答案:

答案 0 :(得分:1)

使用jQuery的解决方案

<script type="text/javascript">
  $(document).ready(function() {
    var val = $("input[type=radio][name='dateRange2']:checked").val();
    if(val!=3) {
        $('#startdatebox,enddatebox').prop('disabled', true);
    }
});

而不是

window.onload=function(){
   if(val != 3) {
      document.getElementById("startdatebox").disabled = true;
      document.getElementById("enddatebox").disabled = true;
    } else {
      document.getElementById("startdatebox").disabled = false;
      document.getElementById("enddatebox").disabled = false;
    }

}

不要忘记也加载jquery library