我将此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>
当我单击复选框以选择全部时,不工作且没有任何反应。有什么想法吗?
答案 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>