javascript - 如何在 JQuery 测试中“选中”复选框
问题描述
我正在测试一个功能,当复选框被“选中”时,该功能将 div 的显示从“无”更改为“阻止”。该代码在网站上运行,我对通过的同一段代码进行了另一次测试(Javascript 检查复选框是否在页面加载时“选中”。如果没有,它将 div 更改为“无”)。
考试:
QUnit.test("optional fields visible when checkbox selected", function (assert) {
assert.equal($('#optional_fields').css('display'), 'none');
$('#id_taken_test_before').prop('checked', true);
assert.equal($('#optional_fields').css('display'), 'block');
});
相关的html代码:
<div class="form-group">
<div id="div_id_taken_test_before" class="custom-control custom-checkbox">
<input type="checkbox" name="taken_test_before" class="checkboxinput custom-control-input"
id="id_taken_test_before">
<label for="id_taken_test_before" class="custom-control-label">Have you taken the test
before</label>
</div>
</div>
以及相关的 javascript 代码:
$("#div_id_taken_test_before").change(function(){
var questions = document.getElementById("optional_fields");
if($('#id_taken_test_before').is(':checked')){
questions.style.display = "block";
}else{
questions.style.display = "none";
}
});
我正在尝试“检查”复选框,然后它应该触发我的 javascript 并将“可选字段”div 更改为“阻止”。
:checked 事件永远不会触发。我尝试了很多东西-
(div_id_taken_test_before').prop...
.click()
等,但只是无法将此复选框更改为“已选中”。
谢谢你。
解决方案
推荐阅读
- flutter - 使用 Firebase 托管部署的 Flutter Web 不尊重 Safari 中的刷新
- android-studio - 当我尝试添加两个editext时,应用程序不断崩溃
- url - URL 编码 +(加号)计算为空格
- ios - SwiftUI:扩展/收缩列表单元格
- karate - 你有关于空手道如何与桌面应用程序交互的示例代码吗
- python - How to match the first word of a line and separate subsequent values with a comma
- swift - 使用 firebase 和 swift 注册后为 UID 创建一个数据库条目
- python - 在python中将XML转换为字典列表
- php - PHP 7.2 Apache not executing all php code
- c# - 当 LINQ 应该影响链中的先前调用时,它是如何工作的?(例如 mongo/Linq2Sql)