将事件添加到yii中CgridView中的复选框

时间:2014-01-25 11:12:46

标签: php yii

我在cgridview的每一行添加了复选框,并在按钮Delete Selected中删除了所选的行, 现在我要做的是在选中复选框之前,禁用Delete Selected按钮,我该怎么做。 以下是我的admin视图的代码:

<?php
$form = $this->beginWidget('CActiveForm', array(
        'id' => 'account-form',
        'action' => array('site/DeleteMultiple'),
        'enableAjaxValidation' => true,
));

 $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'assign-grid',
    'dataProvider'=>$model->search(),
    'selectableRows' => 2,
    'filter'=>$model,
    'columns'=>array(
        array(
            'id' => 'id',
            'class' => 'CCheckBoxColumn',
        ),
        array(
            'name'=>'username',
            'value'=>'$data->user->username',
        ),
        array(
            'name'=>'Firstname',
            'value'=>'$data->user->firstname',
        ),
        array(
            'class'=>'CButtonColumn',
        ),
    ),
)); ?>
<div id="submit-button" style="display:none">
<?php 
echo CHtml::SubmitButton('Delete Selected', array('class' => 'button')); 
?>
</div>
<?php $this->endWidget();?>

2 个答案:

答案 0 :(得分:3)

按以下更改按钮

echo CHtml::SubmitButton('Delete Selected', array('class' => 'button','disabled'=>'true'));

然后添加一个JS函数:

$("#assign-grid input[type=checkbox]").click(function()
{
   if($("#assign-grid").find("input:checked").length >0)
      $(".button").removeAttr("disabled");
   else
      $(".button").attr("disabled","true");
});

答案 1 :(得分:2)

试试看, 创建一个jQuery / javascript函数来显示div并在复选框的onclick中调用它

喜欢这个

  

阵列(               'id'=&gt; 'ID',               'class'=&gt; 'CCheckBoxColumn',               'onclick'=&gt; 'fn_onclick()'           ),