作为更大批量的Jasmine测试的一部分,我试图检测盒子是否被检查。但是,我无法弄清楚如何让Jasmine正确检测盒子是否被检查。要不然,或者我无法弄清楚如何使用jQuery正确检查它。以下测试失败:
it('detects when a checkbox is checked', function() {
form.affix('input').addClass('checkbox');
$('.checkbox').prop('checked', true);
console.log ($('.checkbox').prop('checked'));
console.log ($('.checkbox').is(':checked'));
expect($('.checkbox').is(':checked')).toBeTruthy();
});
控制台日志显示为true,然后显示为false,这意味着肯定有一个名为"已检查的属性"值为true,但它与它不同:检查。
我尝试使用Google搜索"使用jquery查看复选框"并发现各种人都说要检查一个复选框,你使用prop()方法。其中一些答案就在Stack Overflow上。
显然,我做错了什么。我只是需要帮助弄清楚它是什么。有人可以帮忙吗?答案 0 :(得分:1)
所以,首先,它取决于您使用脚本的jQuery版本。尝试给出两种方法,希望它们可以工作。
jQuery 1.6+ 使用新的.prop()函数:
$('.checkbox').prop('checked', true);
$('.checkbox').prop('checked', false);
jQuery 1.5.x及更低版本 .prop()函数不可用,因此您需要使用.attr()。
$('.checkbox').attr('checked', true);
$('.checkbox').attr('checked', false);