作为较大批量 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,这意味着肯定有一个名为“checked”的属性,其值为 true,但这与它被 :checked 不同。
我尝试在谷歌上搜索“使用 jquery 来检查复选框”,发现各种各样的人都说要检查复选框,可以使用 prop() 方法。其中一些答案就在 Stack Overflow 上。
显然,我做错了什么。我只需要帮助弄清楚它是什么。有人可以帮忙吗?
最佳答案
所以,首先,这取决于您的脚本使用的 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);
关于javascript - Jasmine 无法检测复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35070213/