2016-11-07 110 views
0

我正面临一个奇怪的问题。我无法访问使用jquery禁用的复选框。以下是代码片段:未使用jquery禁用复选框

HTML

<td class="checkbox1 col5"> 
    <input type="checkBox" 
      class="checkbox {{contractorInfo.contractorID}}" 
      ng-click=" massUpdateMainCtrl.offboardContractor(contractorInfo,$index)" 
      id="{{$index}}" 
      ng-disabled="massUpdateMainCtrl.disableCheckBoxAlreadyAddedToMassUpdate({{contractorInfo.contractorID}})" 
      ng-checked="massUpdateMainCtrl.disableCheckBoxAlreadyAddedToMassUpdate({{contractorInfo.contractorID}})"> 
    <label for="{{$index}}"></label> 
</td> 

CSS

input[type=checkbox] { 
    display: none; 
} 

.checkbox1 label { 
    border: 1px solid #c0c0c0; 
    height: 15px; 
    width: 15px; 
    max-width: 100%; 
    margin-bottom: 0px; 
    font-weight: bold; 
    vertical-align: middle!important; 
} 

JQuery的:这里

$(".checkbox").attr('disabled', 'disabled'); 

问题是我不能够禁用复选框使用jquery。

请帮忙。

回答

1

使用 '道具',而不是attr

$(".checkbox").prop('disabled', true); 
+0

编辑我答,对不起,我错了。 – Samir

2

尝试假设你有jQuery的> 1.6,则必须使用.prop()代替.attr()

$(".checkbox").prop('disabled', true); 

http://api.jquery.com/attr/:“检索和更改DOM属性,如表单元素的checked,selected或disabled状态,使用.prop()方法。“

+0

尝试使用.prop但没有运气。 – Suvojit

+0

你可以发布一个JSFiddle不工作吗?我没有理由不这样做,这是做这件事的标准方式。 – ADyson

0

你可以使用这个属性

ng-disabled="!d" 

因此,使用javascript:

$(".checkbox").attr('ng-disabled', "!d"); 
0

的jQuery 1.6 +使用

Use the new .prop() function: 
 

 
$("input.group1").prop("disabled", true); 
 
$("input.group1").prop("disabled", false);

而jQuery的1.5及以下使用

$("input.group1").attr('disabled','disabled');

0

看来你正在使用jQuery和角度来控制你的界面,所以我不认为这是一个好主意,有些人可能不同意我的观点,但我建议您只使用其中的一种框架,在这种情况下只能使用角度。 尝试使用ng禁用来完成你想要的。

如需进一步了解,请访问: Angular docs

+0

已经使用了ng-disabled,但是我的视图每次都会刷新数据,所以ng-disabled does not工作。 – Suvojit

+0

问题是,因为我有一个复选框的语法标签,并设计了复选框与CSS和原始复选框样式显示:无,我无法使用jquery禁用新的标记复选框 – Suvojit