【发布时间】:2013-09-02 15:41:23
【问题描述】:
我有一组 php 生成的复选框:
<?php foreach($checkbox as $check) {?>
<input type = "checkbox" name="checkbox[]" class="<?php echo $check -> class ?>" value ="<?php echo $check -> value ?>" /><?php echo $check->value ?>
<?php } ?>
PHP 生成以下 HTML:
<input type="checkbox" name="checkbox[]" class="class1" value="Checkbox1" />Checkbox1
<input type="checkbox" name="checkbox[]" class="class1" value="Checkbox2" />Checkbox2
<input type="checkbox" name="checkbox[]" class="class1" value="Checkbox3" />Checkbox3
<input type="checkbox" name="checkbox[]" class="class2" value="Checkbox4" />Checkbox4
<input type="checkbox" name="checkbox[]" class="class2" value="Checkbox5" />Checkbox5
<input type="checkbox" name="checkbox[]" class="class2" value="Checkbox6" />Checkbox6
<input type="checkbox" name="checkbox[]" class="class3" value="Checkbox7" />Checkbox7
<input type="checkbox" name="checkbox[]" class="class3" value="Checkbox8" />Checkbox8
为了解释上面,我有三类复选框,并希望:
如果我选中 class1 中的任何内容,class3 将被禁用,如果我取消选中,class3 将重新启用。
如果我选中 class2 ,所有其他 class2 都将被禁用,class1 如果已选中则保持选中状态,否则将变为选中状态。
我已经尝试过这样做,使用下面的脚本。
$('input[class*="class"]').click(function(){
if($(this).is(':checked')){
var classValue = $(this).attr('class');
if(classValue == 'class1'){
$('.class3').prop('disabled', true);
$('.class3').prop('checked', false);
}
else if(classValue == 'class2'){
$('.class2').not(':checked').prop('disabled', true);
$('.class3').prop('disabled', true);
}
else if(classValue == 'class3'){
$('.class1').prop('checked', false);
$('.class2').prop('checked', false);
$('.class1, .class2').prop('disabled', true);
}
}
})
虽然没有用。
【问题讨论】:
-
您的问题并没有说明检查
class3时应该发生什么,但您的代码中有这种情况。是哪个?
标签: javascript jquery html checkbox