您好,在bootstrap 3中执行此操作时遇到问题。我的代码在jsfiddle中工作,但是在bootstrap中不起作用。
这是jsfiddle
的HTML
<div class="col-md-3 span6 privilege-container-b">
<label class="checkbox">
<input type="checkbox" name="mypriv" value="test_priv1" class="test_priv1">Checkbox 1</label>
<label class="checkbox">
<input type="checkbox" name="mypriv" value="test_priv2" class="test_priv2">Checkbox 2</label>
<label class="checkbox">
<input type="checkbox" name="mypriv" value="test_priv3" class="test_priv3">Checkbox 3</label>
<label class="checkbox">
<input type="checkbox" name="mypriv" value="test_priv4" class="test_priv4">Checkbox 4</label>
<label class="checkbox">
<input type="checkbox" name="mypriv" value="test_priv5" class="test_priv5">Checkbox 5</label>
<label class="checkbox">
<input type="checkbox" name="mypriv" value="test_priv6" class="test_priv6">Checkbox 6</label>
</div>
jQuery的
$('.test_priv1').change(function () {
var val = $('.test_priv1').is(':checked');
if (val === true) {
$('.test_priv2, test_priv3').prop('checked', true);
$('.test_priv2, test_priv3').prop('disabled', true);
} else {
$('.test_priv2, test_priv3').prop('checked', false);
$('.test_priv2, test_priv3').prop('disabled', false);
}
return false;
});
上面的代码不起作用。我的目标是如果选中了test_priv1,则将检查并锁定test_priv2和test_priv3。我的代码有什么问题吗?请纠正我。谢谢
最佳答案
$(function() {
$('.test_priv1').on("click", function () { // IE<9 triggers change after blurred
var checked = $(this).is(':checked');
var $otherChecks = $('.test_priv2, .test_priv3');
$otherChecks.prop('checked', checked);
$otherChecks.prop('disabled', checked);
$otherChecks.parent().toggleClass("disabled",checked);
});
});
注意我也将标签文本设为灰色
顺便说一句,如果您想将所有其他框都涂成灰色,则无论班级如何,都可以
var $otherChecks = $("input[name='mypriv']:not('.test_priv1')");
要么
var $otherChecks = $("input[name='mypriv']").not(this);