不能让单选按钮onchange在cakephp中工作

时间:2015-02-28 13:33:38

标签: javascript cakephp

我没有得到任何输出我的onchange事件的单选按钮。 我想从4个单选按钮中选择3个并禁用文本输入字段,另一个启用文本输入。

目前我无法输出任何内容。

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('dateRange', 
               array('id'=>'dateRange2','label' => '<h6>Date Range</h6>','type' => 'radio', 
                 'value' =>$dateSelect,'name'=>'dateRange2' ,'options' =>  $selectoption))

<script type="text/javascript">  
$("input[name='data[User][dateRange2]']").on("click",function() {
 $('#startdatebox, #enddatebox').prop('disabled', $(this).val()  != 3);
  alert( 'aasda');
});

2 个答案:

答案 0 :(得分:2)

首先拨打单选按钮上的onclick,就像

一样
echo $this -> Form -> input('dateRange', 
  array('id'=>'dateRange2',
      'label' => '<h6>Date Range</h6>',
      'type' => 'radio', 
      'value' =>$dateSelect,
      'name'=>'dateRange2' ,
      'options' =>  $selectoption, 
      'onclick'=> 'myFunc(this.value)'
     )
);

然后添加javascript

<script type="text/javascript">
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;
    }
}
</script>

或者,使用jQuery 1.6 +

更改输入字段的禁用属性
 function myFunc(val) {
      $('#startdatebox, #enddatebox').prop('disabled', $(this).val()  != 3);
 }

我希望你能帮忙。

答案 1 :(得分:1)

onChange()不适用于单选按钮,但它适用于复选框或选择。

为了检测无线电的选择动作,您必须使用onclick()函数。作为Supravat的回答,你需要通过&#34; this.value&#34;在onclick()函数中,您可以在javascript中获得所选值。