javascript - Jasmine 无法检测复选框

标签 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,这意味着肯定有一个名为“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/

相关文章:

javascript - 单击链接后如何显示水平列表?

javascript - Angularjs如何根据另一个列表中是否存在重复元素有条件地检查复选框

javascript - 使用 include 标签时如何将 Django 模板呈现为字符串?

javascript - 我一直在尝试似乎没有让放大的弹出窗口正常工作

javascript - 当未完成所有字段时,如何创建确认表单提交的 JS 函数

javascript - Jquery,使用委托(delegate)事件时一键点击

android - 代码没有扩展 ListViewActivity,但是有一个 listview

jquery removeClass 仅当同一组(具有相同类?)的所有复选框均未选中时

javascript - 为什么我需要 JavaScript 原型(prototype)来扩展对象?

javascript - 浏览器中的自动增量验证短信代码(otp || 2fa)