Jquery 检查是否选中但未禁用一组复选框
此代码:Jquery 检查是否选中但未禁用一组复选框,jquery,html,checkbox,Jquery,Html,Checkbox,此代码: if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) { $('[id*="cat' + cat_id + '_sk"]').prop('checked', false); } else if ($('[id*="cat' + cat_id + '_sk"]').not(':checked')
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if ($('[id*="cat' + cat_id + '_sk"]').not(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
似乎忽略了if条款的第二部分;如果选中复选框,我希望它被忽略
我也试过用前面的做是(':disabled)
代码>,也尝试了一个布尔值!(元素)。道具(“禁用”)代码>--所有这些都具有相同的效果
上面的代码肯定会被调用,因为所有复选框都会切换为选中状态——问题是无法忽略禁用的复选框
我的逻辑错了吗?你应该使用!对象为(“:选中”)
,示例:
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if (!$('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked')) {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
}
} else {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
}
另一个例子是,如果您想在选中复选框后进入未选中复选框,只需将逻辑分开,例如:
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if (!$('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked')) {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
}
} else {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
}
你应该使用!对象为(“:选中”)
,示例:
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if (!$('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked')) {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
}
} else {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
}
另一个例子是,如果您想在选中复选框后进入未选中复选框,只需将逻辑分开,例如:
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if (!$('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked')) {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
}
} else {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
}
你应该使用!对象为(“:选中”)
,示例:
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if (!$('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked')) {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
}
} else {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
}
另一个例子是,如果您想在选中复选框后进入未选中复选框,只需将逻辑分开,例如:
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if (!$('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked')) {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
}
} else {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
}
你应该使用!对象为(“:选中”)
,示例:
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if (!$('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked')) {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
}
} else {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
}
另一个例子是,如果您想在选中复选框后进入未选中复选框,只需将逻辑分开,例如:
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
} else if (!$('[id*="cat' + cat_id + '_sk"]').is(':checked') && $('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
if ($('[id*="cat' + cat_id + '_sk"]').is(':checked')) {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', false);
}
} else {
if ($('[id*="cat' + cat_id + '_sk"]').not(':disabled')) {
$('[id*="cat' + cat_id + '_sk"]').prop('checked', 'checked');
}
}
jQuery中的.not()只是一个减少当前元素集的过滤器。如果禁用,则不会返回布尔值 jQuery中的.not()只是一个减少当前元素集的过滤器。如果禁用,则不会返回布尔值 jQuery中的.not()只是一个减少当前元素集的过滤器。如果禁用,则不会返回布尔值 jQuery中的.not()只是一个减少当前元素集的过滤器。如果禁用,则不会返回布尔值 这应该更有效一些:
$('[id*="cat' + cat_id + '_sk"]').each(function(elm) {
var $elm = $(elm);
if($elm.is(':checked') && !$elm.is(':disabled')) {
$elm.removeProp('checked');
}
else if(!$elm.is(':checked') && !$elm.is(':disabled')) {
$elm.prop('checked', 'checked');
}
});
正如A.Wolff上面所说,.is(“:checked”)
将返回true,即使匹配集中只有一个复选框被选中。您需要使用每个循环元素,这应该会更好一些:
$('[id*="cat' + cat_id + '_sk"]').each(function(elm) {
var $elm = $(elm);
if($elm.is(':checked') && !$elm.is(':disabled')) {
$elm.removeProp('checked');
}
else if(!$elm.is(':checked') && !$elm.is(':disabled')) {
$elm.prop('checked', 'checked');
}
});
正如A.Wolff上面所说,.is(“:checked”)
将返回true,即使匹配集中只有一个复选框被选中。您需要使用每个循环元素,这应该会更好一些:
$('[id*="cat' + cat_id + '_sk"]').each(function(elm) {
var $elm = $(elm);
if($elm.is(':checked') && !$elm.is(':disabled')) {
$elm.removeProp('checked');
}
else if(!$elm.is(':checked') && !$elm.is(':disabled')) {
$elm.prop('checked', 'checked');
}
});
正如A.Wolff上面所说,.is(“:checked”)
将返回true,即使匹配集中只有一个复选框被选中。您需要使用每个循环元素,这应该会更好一些:
$('[id*="cat' + cat_id + '_sk"]').each(function(elm) {
var $elm = $(elm);
if($elm.is(':checked') && !$elm.is(':disabled')) {
$elm.removeProp('checked');
}
else if(!$elm.is(':checked') && !$elm.is(':disabled')) {
$elm.prop('checked', 'checked');
}
});
正如A.Wolff上面所说,.is(“:checked”)
将返回true,即使匹配集中只有一个复选框被选中。您需要使用每个这样的东西循环元素吗
上面的代码行是表示是否选中此复选框且未禁用此复选框的逻辑
$(document).ready(function() {
$('.check').each(function() {
console.log($(this).attr('disabled'));
if($(this).is(':checked') && $(this).attr('disabled') != 'disabled') {
$(this).after('Checked and not disabled');
}
});
});
<input type="checkbox" class="check" checked disabled/><br/>
<input type="checkbox" class="check" /><br/>
<input type="checkbox" class="check" checked disabled/><br/>
<input type="checkbox" class="check" checked /><br/>
<input type="checkbox" class="check" /><br/>
<input type="checkbox" class="check" disabled /><br/>
<input type="checkbox" class="check" /><br/>
$(文档).ready(函数(){
$('.check')。每个(函数(){
console.log($(this.attr('disabled'));
if($(this).is(':checked')&&&$(this.attr('disabled')!='disabled')){
$(this).after('Checked and not disabled');
}
});
});
希望这能对你有所帮助
上面的代码行是表示是否选中此复选框且未禁用此复选框的逻辑
$(document).ready(function() {
$('.check').each(function() {
console.log($(this).attr('disabled'));
if($(this).is(':checked') && $(this).attr('disabled') != 'disabled') {
$(this).after('Checked and not disabled');
}
});
});
<input type="checkbox" class="check" checked disabled/><br/>
<input type="checkbox" class="check" /><br/>
<input type="checkbox" class="check" checked disabled/><br/>
<input type="checkbox" class="check" checked /><br/>
<input type="checkbox" class="check" /><br/>
<input type="checkbox" class="check" disabled /><br/>
<input type="checkbox" class="check" /><br/>
$(文档).ready(函数(){
$('.check')。每个(函数(){
console.log($(this.attr('disabled'));
if($(this).is(':checked')&&&$(this.attr('disabled')!='disabled')){
$(this).after('Checked and not disabled');
}
});
});
希望这能对你有所帮助
上面的代码行是表示是否选中此复选框且未禁用此复选框的逻辑
$(document).ready(function() {
$('.check').each(function() {
console.log($(this).attr('disabled'));
if($(this).is(':checked') && $(this).attr('disabled') != 'disabled') {
$(this).after('Checked and not disabled');
}
});
});
<input type="checkbox" class="check" checked disabled/><br/>
<input type="checkbox" class="check" /><br/>
<input type="checkbox" class="check" checked disabled/><br/>
<input type="checkbox" class="check" checked /><br/>
<input type="checkbox" class="check" /><br/>
<input type="checkbox" class="check" disabled /><br/>
<input type="checkbox" class="check" /><br/>
$(文档).ready(函数(){
$('.check')。每个(函数(){
console.log($(this.attr('disabled'));
if($(this).is(':checked')&&&$(this.attr('disabled')!='disabled')){
$(this).after('Checked and not disabled');
}
});
});
希望这能对你有所帮助
上面的代码行是表示是否选中此复选框且未禁用此复选框的逻辑
$(document).ready(function() {
$('.check').each(function() {
console.log($(this).attr('disabled'));
if($(this).is(':checked') && $(this).attr('disabled') != 'disabled') {
$(this).after('Checked and not disabled');
}
});
});
<input type="checkbox" class="check" checked disabled/><br/>
<input type="checkbox" class="check" /><br/>
<input type="checkbox" class="check" checked disabled/><br/>
<input type="checkbox" class="check" checked /><br/>
<input type="checkbox" class="check" /><br/>
<input type="checkbox" class="check" disabled /><br/>
<input type="checkbox" class="check" /><br/>
$(文档).ready(函数(){
$('.check')。每个(函数(){
console.log($(this.attr('disabled'));
if($(this).is(':checked')&&&$(this.attr('disabled')!='disabled')){
$(this).after('Checked and not disabled');
}
});
});
希望这有助于发布完整的代码示例。缺少什么部分?我将在检查元素时验证某些复选框是否已禁用。
取决于您的期望值。我怀疑您对is()
的期望值不正确。is(':checked')
将返回true,即使匹配集中只有一个复选框为checked@KickingLettuce您仍然没有提供预期的结果。错误的代码不能代替解释它应该发布一个完整的代码示例。缺少什么部分?我将在检查元素时验证某些复选框是否已禁用。
取决于您的期望值。我怀疑您对is()
的期望值不正确。is(':checked')
将返回true,即使匹配集中只有一个复选框为checked@KickingLettuce您仍然没有提供预期的结果。错误的代码不能代替解释它应该发布一个完整的代码示例。缺少什么部分?我将在检查元素时验证某些复选框是否已禁用。
取决于您的期望值。我怀疑您对is()
的期望是不正确的。is(':checked')
将