如果只检查该div中的一个复选框,我想在div中的所有复选框中添加一个类。我不认为我太遥远了,但我被困住了。这就是我所拥有的。
var checkboxes = $("#myContent input[type='checkbox']");
$(document).on("click", checkboxes, function() {
if(checkboxes.is(":checked")) {
checkboxes.removeClass('invalid').addClass('valid');
}
else {
checkboxes.removeClass('valid').addClass('invalid');
}
});
我已经尝试用一个警告来代替addClass / removeClass,但是在检查一个框和取消选中时(我在“else”语句中提到的警告),我都得到相同的警报。我必须在这附近,有人知道我错过了吗?
我的HTML如下(我也在使用Smarty):
<div class="pd5" id="myContent">
{foreach from=$cLibrary key=k item=l}
<div class="clrBoth {cycle values=',AltRows0'} pd5 fLeft p100">
<input type="hidden" name="isform[{$k}]" value="{$l.isform}" class="valid" />
<div class="fLeft px20">
<input type="checkbox" value="{$k}" name="contentValue[{$k}]" id="contentData_{$k}" class="invalid" {foreach item=cn key=po from=$selectedContent}{if $cn eq $k} checked {/if}{/foreach} />
</div>
</div>
</div>
答案 0 :(得分:1)
使用if(this.checked)
如果在变量中定义复选框选择器,则动态元素不会计数。所以没有使用委托事件。
$(document).on("click", "#myContent :checkbox", function (e) {
if (this.checked) {
$('#myContent :checkbox').removeClass('invalid').addClass('valid');
} else {
$('#myContent :checkbox').removeClass('valid').addClass('invalid');
}
});
<强> Fiddle 强>
答案 1 :(得分:0)
我发现了这项工作
$(function(){
$(".checkbox").on("click",function(){
if($(this).is(":checked")){
$(".checkbox").removeClass("invalid").addClass("valid");
}else{
$(".checkbox").removeClass("valid").addClass("invalid");
}
})
});
<div id="wrapper">
<input type="checkbox" class="checkbox">
<input type="checkbox" class="checkbox">
<input type="checkbox" class="checkbox">
<input type="checkbox" class="checkbox">
<input type="checkbox" class="checkbox">
</div>