我有以下几点:
$(document).ready(function()
{
$("#select-all-teammembers").click(function() {
$("input[name=recipients\\[\\]]").attr('checked', true);
});
});
我希望id="select-all-teammembers"在选中和未选中之间切换。想法吗?那不是几十行代码吗?
我有以下几点:
$(document).ready(function()
{
$("#select-all-teammembers").click(function() {
$("input[name=recipients\\[\\]]").attr('checked', true);
});
});
我希望id="select-all-teammembers"在选中和未选中之间切换。想法吗?那不是几十行代码吗?
当前回答
在我看来,建议正常变种的人是GigolNet Gigolashvili,但我想建议更漂亮的变种。检查它
$(document).on('click', '.fieldWrapper > label', function(event) {
event.preventDefault()
var n = $( event.target ).parent().find('input:checked').length
var m = $( event.target ).parent().find('input').length
x = n==m? false:true
$( event.target ).parent().find('input').each(function (ind, el) {
// $(el).attr('checked', 'checked');
this.checked = x
})
})
其他回答
您还可以通过执行以下操作来切换复选框。目前使用引导切换复选框。
<link href='https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css' rel='stylesheet'>
<script src='https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js'></script>
<input type='checkbox' id='toggleScheduler' name='toggleScheduler' data-toggle='toggle' data-on='Enabled' data-off='Disabled'
$("#toggleScheduler").bootstrapToggle('on'); // enable toggle checkbox
$("#toggleScheduler").bootstrapToggle('off'); // disable toggle checkbox
我知道这是老问题,但这个问题有点模棱两可,因为toggle可能意味着每个复选框都应该切换其状态,无论它是什么。如果有3个选中,2个未选中,那么切换将使前3个未选中,最后2个选中。
为此,这里的解决方案都不起作用,因为它们使所有复选框具有相同的状态,而不是切换每个复选框的状态。对多个复选框执行$(':checkbox').prop('checked')将在所有.checked二进制属性之间返回逻辑与,即如果其中一个未选中,则返回值为false。
你需要使用.each()如果你想实际切换每个复选框的状态,而不是使它们都相等,例如。
$(':checkbox').each(function () { this.checked = !this.checked; });
请注意,在处理程序中不需要$(this),因为.checked属性存在于所有浏览器中。
在某些条件下,复选框应自行更新。尝试点击“#选择所有团队成员”,然后取消一些项目,并再次单击选择全部。你可以看到不一致。为了防止它,可以使用以下技巧:
var checkBoxes = $('input[name=recipients\\[\\]]');
$('#select-all-teammembers').click(function() {
checkBoxes.prop("checked", !checkBoxes.prop("checked"));
$(this).prop("checked", checkBoxes.is(':checked'));
});
顺便说一下,所有DOM-object复选框都应该像上面描述的那样缓存。
此代码将在单击web模板中使用的任何拨动开关动画器时拨动复选框。取代”。Onoffswitch-label”在你的代码中可用。 "checkboxID"是这里被切换的复选框。
$('.onoffswitch-label').click(function () {
if ($('#checkboxID').prop('checked'))
{
$('#checkboxID').prop('checked', false);
}
else
{
$('#checkboxID').prop('checked', true);
}
});
我认为触发点击更简单:
$("#select-all-teammembers").click(function() {
$("input[name=recipients\\[\\]]").trigger('click');
});