2014-04-14 166 views
0

我为我的复选框,禁用复选框,当复选框被选中

$('.cuttingCheckbox').change(function() { 
     if (this.checked) { 
      alert('checked'); 
     } else { 
      alert('unchecked'); 
     } 
     }); 

我想禁用用户检查后立即复选框。请帮助我如何做到这一点。我知道这很简单,但即时通讯非常新。

+2

'this.disabled = TRUE;'应该这样做。 –

+2

你为什么想这样做?禁用的表单元素的值不包含在请求中,并且用户在禁用时无法取消选中该复选框。听起来像一个不好的用户体验...的 –

+0

可能重复[JQuery的 - 复选框启用/禁用(http://stackoverflow.com/questions/2330209/jquery-checkbox-enable-disable) –

回答

1

只需设置disabled属性true当检测到该复选框处于选中状态,即:

$('.cuttingCheckbox').change(function() { 
    if (this.checked) { 
     alert('checked'); 
     this.disabled = true; 
    } else { 
     alert('unchecked'); 
    } 
    }); 

我还建议通过想为什么要禁用它。禁用的表单元素值不会发送到服务器。

+1

如果使用'的setAttribute()' ,这个值不会被“禁用”吗? 'this.disabled = true'会更好的IMO。 – alex

+0

@alex Doh!我的错。我的大脑必须脱离几秒钟,并同意编辑以反映这一点。 :)特别喜欢SO,因为错误很快被捕获和纠正。 – Alex

-1
$('.cuttingCheckbox').change(function() { 
     if (this.checked) { 
      document.getElementById("cuttingCheckbox").disabled= true 
     } else { 
      document.getElementById("cuttingCheckbox").disabled = false 
     } 
     }); 

希望这可能有帮助。 :)

+3

为什么你认为有一个ID为'cuttingCheckbox'的元素?此外,如果有多个带有“cuttingCheckbox”类的复选框,这不会导致期望的结果。 –