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

Jasmine Having Trouble Detecting A Checkbox

本文关键字:遇到 问题 复选框 检测 茉莉花      更新时间:2023-09-26

作为更大批次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,但这与 :check 不同。

我尝试在谷歌上搜索"使用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);