0

我有一个小表格。在这种形式中,如果选择了项目 a项目 b,则应勾选第三个复选框。此复选框被禁用,用户不应该能够自己加厚它。一旦项目 a项目 b未选中,第三个必需项目应保持选中状态,但是如果两个项目均未选中,则所需项目也应取消选中。

<p><input type="checkbox" value="50.00" class="itema" />Item a</p>
<p><input type="checkbox" value="40.00" class="itemb" />Item b</p>
<p><input type="checkbox" value="1" class="item2" disabled />Required by item a and b</p>

使用下面的代码,我可以进行检查,但我不知道如何完成有条件的取消检查

$(function () {
    $('.itema').change(function () {
        $('.item2').prop('checked', true);
    })
    $('.itemb').change(function () {
        $('.item2').prop('checked', true);
    })
});

这是一些更多代码的小提琴 http://jsfiddle.net/mthomas/ejQjP/10/

4

2 回答 2

1

我知道这并不能 100% 为你解决工作,但我认为这是你遇到问题的地方,所以我建议你从这里开始。

您想在更改功能中检查复选框的状态

$('.item1').change(function () {
    var isChecked = $(this).is(':checked'); // will be true after checking and false when unchecking
    $('.item2').prop('checked', isChecked)
               .prop('disabled', isChecked)
               .change();
})

http://jsfiddle.net/ejQjP/17/

编辑您可能想在新选中的复选框上触发更改事件

PS:没有理由有3个文档准备功能,每个$(document).ready(function () {&$(function () {都可以合二为一。

于 2013-05-12T10:08:11.580 回答
0
$(function () {
    $('.itema , itemb').change(function () {
           var  isChecked = $('.item2').is(':checked');
           var  isChecked1 = $('.item1').is(':checked');

           if(isChecked == true && isChecked1 == true)
            $('.item2').prop('disabled', true);

           else
            $('.item2').prop('disabled', false);

    })

});
于 2013-05-12T10:08:27.217 回答