检查所有未禁用

时间:2015-03-30 16:53:15

标签: jquery checkbox disabled-input

在这里研究我找到了一些代码,用于检查复选框是否已禁用,并且我试图将其实现到我的代码中而没有运气。

HTML:

<input type="checkbox" name="file1" id="pdf1" class = "pdffiles" value="101SP01.dwg" disabled="disabled"/><label for="pdf1"><button type = "button" class = "btn btn-primary btn-sm hidden-sm hidden-xs"> PDF</button></label><br />
<input type="checkbox" name="file2" id="pdf2" class = "pdffiles" value="101SP02.dwg" /><label for="pdf2"><button type = "button" class = "btn btn-primary btn-sm hidden-sm hidden-xs"> PDF</button></label><br />

JQuery的:

function pdf(source) {
  $('input[name=pdffiles]').each(function(){
    if(!$(this).attr('disabled'))
      checkboxes[i].checked = source.checked;
  };
};

当我单击选中全部的复选框时,它仍会选择全部。这是以前工作的代码,它也选择了所有代码(在我做出上述更改之前):

function pdf(source) {
  checkboxes = document.getElementsByClassName('pdffiles');
  for(var i=0, n=checkboxes.length;i<n;i++) {
    checkboxes[i].checked = source.checked;
  }
}

目标是仅检查未禁用的复选框。

此外,如果有帮助,这里是单击的复选框,它运行代码:

<input type="checkbox" onClick="pdf(this)" class = "hidden-xs hidden-sm">

哦,而且,我尝试过.prop而不是.attr

下面提供的小提琴代码完美无缺!但我不明白为什么它不适用于我的代码:

function pdf(source) {
$('.pdffiles').not(':disabled').prop('checked', source.checked);

};

我没有改变任何其他事情。

其他必须启用全选,但我无法弄清楚我正在编辑的代码中的内容。

我将此问题标记为已回答,因为所提供的代码完美无缺。我自己的代码中的其他东西导致select all。我正在处理的代码不是我自己的代码,而是一个同事,所以我将不得不尝试与他一起努力解决这个问题我感谢你的帮助!

2 个答案:

答案 0 :(得分:3)

您可以.not()使用disabled-selector排除已停用的元素,同时请注意pdffiles是一个不是名字的类

function pdf(source) {
    $('input.pdffiles').not(':disabled').prop('checked', source.checked);
};

演示:Fiddle

答案 1 :(得分:0)

例如:

$('.pdffiles').not(':disabled').prop('checked', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="file1" id="pdf1" class = "pdffiles" value="101SP01.dwg" disabled="disabled"/><label for="pdf1"><button type = "button" class = "btn btn-primary btn-sm hidden-sm hidden-xs"> PDF</button></label><br />
<input type="checkbox" name="file2" id="pdf2" class = "pdffiles" value="101SP02.dwg" /><label for="pdf2"><button type = "button" class = "btn btn-primary btn-sm hidden-sm hidden-xs"> PDF</button></label><br />