2011-12-28 73 views
1

我的html:无法处理禁用复选框

<div class="check"> 
<input class="sfCheckbox" type="checkbox" title="view" disabled="true" checked="checked"> 
<input class="sfCheckbox" type="checkbox" title="view" checked="checked"> 
</div> 

jQuery中我尝试:

$('.check .sfCheckbox').attr('checked', false); 

代码工作正常,但我想如果('checked', false)复选框未disable.How让欲望result.Thanks。

我的意思是如果复选框被禁用,什么也不做.if没有'检查',false.Thanks。

+0

检查是一个div的类名。如何设置其属性检查为false – 2011-12-28 10:52:32

+0

您的jquery代码片段正在选择一个div,但您试图在其上设置一个checked属性?我假设你想要在其中一个输入上设置属性,而不是div,在这种情况下使用.prop,而不是.attr – kinakuta 2011-12-28 10:52:47

+0

你究竟想在这里实现什么?您当前的代码检查是否检查格(不是任何复选框)具有“检查”属性。我无法想象这是你的意图? – Oldskool 2011-12-28 10:52:51

回答

1

试试这个:

添加.not('[disabled]')在你的声明会做的伎俩

$('.check .sfCheckbox').not('[disabled]').attr('checked', false); 

本声明将取消与sfCheckbox类是一个元素中带班所有'enabled'复选框check

+0

谢谢,我知道了。它的工作。 :) – 2011-12-28 11:05:48

1

Try:

 

if(!$(".check").is(":disabled")) { 
$(this).attr('checked', false); 

} 
 
+0

我想对面的上面的代码。如果复选框禁用不做任何.if不'''检查',虚假'。谢谢。 – 2011-12-28 10:59:29

+0

确定编辑了代码 – 2011-12-28 11:04:30

2

如果你正在使用jQuery 1.6或更高版本,不使用.attr()了,有.prop()代替:

$('selector goes here').prop('checked', false); 
1

你可以试试this example。 解释是用$('。check')你得到的是div元素而不是复选框。您HAVO提供复选框选择达到你wanto

1

工作代码:

if($("input").attr("disabled")==undefined) 
     $('input').removeAttr('checked','checked');