茉莉花在检测复选框时遇到问题

时间:2016-01-28 19:23:33

标签: javascript jquery checkbox jasmine

作为更大批量的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上。

显然,我做错了什么。我只是需要帮助弄清楚它是什么。有人可以帮忙吗?

1 个答案:

答案 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);