我有一个带有“全选”按钮和一堆复选框的窗体。我想让它在用户点击“全选”按钮时选中所有复选框。当用户点击一个按钮时,你如何选择所有复选框
在jQuery中有没有优雅的方式来做到这一点?
编辑#2:我已经将问题隔离到此代码; style =“display:none;”。如果我删除此代码,它工作正常。有任何想法吗?
编辑:下面的答案在我的测试表单中工作,但在这种情况下的按钮是在一个div内,只显示为simpledialog.show()的一部分的窗体内。在这种情况下,由于某种原因,当我按一下按钮我没有看到任何事情发生:
的javascript:
<script type="text/javascript">
$(document).ready(function() {
$('#sdHc3').simpleDialog({
showCloseLabel: false,
open: function() {
$('#checkboxStatus').html('');
},
close: function() {
var c = [];
$('#checkboxForm :checkbox:checked').each(function() {
c.push($(this).val());
});
$('#checkboxStatus').html(' Checked <b>' + c.join(', ') + '</b>.').show();
}
});
});
<script type="text/javascript">
$(function() {
$('#selectAll').click(function() {
var select_all = (this.value === 'Select All');
$(':checkbox').attr('checked', select_all);
this.value = (select_all) ? 'Deselect All' : 'Select All';
});
});
体:
<div style="display: none;" class="scrollableDiv" id="simpleDialog3">
<h3>DEMO3</h3>
<form id="checkboxForm">
<input type="button" id="selectAll" value="TT" />
<input type="checkbox" class="chckbx" value="1" /><br />
<input type="checkbox" class="chckbx" value="1" /><br />
</form>
<p>
<a href="#" class="close">Close</a></p>
</div>
任何想法wh在这种情况下它不起作用?
你把这个放在哪里? – leora 2009-08-26 01:56:39
新的例子应该更容易处理。 – ChaosPandion 2009-08-26 02:02:57
我会把$('input [type = checkbox'])选择器放在this.form上下文中。我也会使用一个标志而不是this.value来检查是否全部被检查。 (另外,如果一个复选框没有被选中,文本不会被改变,等等) – strager 2009-08-26 02:06:43