Jquery chekbox选择除禁用之外的所有内容

时间:2017-03-31 07:29:06

标签: jquery checkbox

我将此jsp代码作为标题来切换所有复选框:

<th><input name="checkAll" type="checkbox" onClick="toggleCheck(this, this.form.poFulfill);"/></th>

每行都会读取记录是否禁用该复选框:

<input type="checkbox" name="poFulfill" value='<%=row.poId.toString()%>'
<%=(row.qtyIn.compareTo(row.qtyOut) == 0))?"disabled":""%>>

我想选择仅限ENABLED的所有复选框。我读过我需要使用jquery所以我将标题修改为:

<th><input id="chkSelectAll" name="checkAll" type="checkbox"/></th>

并补充说:

<script type="text/javascript">
$('#chkSelectAll').click(function () {
var checked_status = this.checked;
$('div#item input[type=checkbox]').not(":disabled").prop("checked", checked_status);
});
</script>

当我单击复选框以选择全部时,不工作且没有任何反应。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我强烈建议您在使用change()click()时使用checkboxes代替radios。我添加了一个带有item id的div,它似乎有效:

$('#chkSelectAll').change(function() {
  var checked_status = this.checked;
  $('div#item input[type=checkbox]').not(":disabled").prop("checked", checked_status);
  console.log($('#chkSelectAll1').is(':checked'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<th><input id="chkSelectAll" name="checkAll" type="checkbox" /></th>
<div id='item'>
<input id="chkSelectAll1" name="checkAll1" type="checkbox" disabled/>
<input id="chkSelectAll2" name="checkAll2" type="checkbox" />
<input id="chkSelectAll3" name="checkAll3" type="checkbox" />
</div>

答案 1 :(得分:1)

$('#chkSelectAll').click(function () {
var checked_status = this.checked;
$('div#item input[type=checkbox]:enabled').prop("checked", checked_status);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<th><input id="chkSelectAll" name="checkAll" type="checkbox"/>check all</th>
<br/>
<br/>
<div id='item'>
<th><input id="chk1" name="chk1" type="checkbox" disabled/>abc</th><br/>
<th><input id="chk2" name="chk2" type="checkbox"/>a</th><br/>
<th><input id="chk4" name="chk4" type="checkbox"/>b</th><br/>
<th><input id="chk5" name="chk5" type="checkbox" disabled/>c</th><br/>
<th><input id="chk6" name="chk6" type="checkbox"/>d</th>
</div>