2014-08-22 18:04:16 5544次浏览 2条回答 0 悬赏 0 金钱

问题是这样的:一个GridView列表,使用了CCheckBoxColumn,允许多选。比方说数据有三条A、B、C;其中C的checkbox被我设置为了disabled,但是通过表头的全选按钮,ABC三条数据还是都能被选中....但是我不想C被选中....

jQ学的不是很好。看了下js源码,但是不知道怎么改。jquery.yiigridview.js的166行~

有jQ学的比较好的可以帮忙看看

补充于 2014-08-25 10:53

我自己是这么做的:
`for(var i =0; i<$checks.length;i++){

							if($checks[i].disabled === true) 
								$checks[i].checked = false;
						}`

但是改了源码不太好。
楼上的方法不错。

我Yii的版本是1.1.13,CGridColumn有一个visible属性,我觉得这个属性很鸡肋,我曾认为这个属性就是控制disabled后,checkbox不显示的.....

补充于 2014-08-25 11:07
$(function(){
	setTimeout(function(){
		$(document).on('click','.grid-view th input',function(){
			$('.grid-view td input:disabled').attr('checked',false);
		});
	},0);
});

最佳答案

  • wuyuxifeng 发布于 2014-08-25 10:35 举报

    这个不需要改jquery.yiigridview.js吧 , 即使被勾中了,disbaled属性还是有的。所以你可以在 jquery.yiigridview.js 脚本执行之后再添加一个checkbox的click 监听即可。大致这样(一定要保证最后执行):

    $(function(){
    	$('.grid-view th input').click(function(){
    		//简单来说让所有 disabled ,一直不能被选中
    		$('.grid-view td input:disabled').attr('checked',false);
    	});
    });
    
  • 回答于 2014-08-23 09:41 举报

    建议你判断一下,不用disabled,直接不加checkbox,也就是判断它不需要可选时就不加checkbox,这样可以少改一些代码。

您需要登录后才可以回答。登录 | 立即注册
zcyxm
副董事长

zcyxm

注册时间:2012-05-11
最后登录:2021-04-11
在线时长:152小时12分
  • 粉丝18
  • 金钱37226
  • 威望60
  • 积分39346

热门问题