Я тестирую функцию, которая меняет отображение div с «none» на «block», когда флажок установлен. Код работает на веб-сайте, и у меня есть еще один тест на том же фрагменте кода, который проходит (Javascript проверяет, установлен ли флажок при загрузке страницы. Если нет, он меняет div на 'none').
Тест:
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 'optional_fields' на 'block'.
Событие: checked никогда не срабатывает. Я пробовал много чего -
(div_id_taken_test_before').prop...
.click()
и c, но просто не могу установить этот флажок, чтобы поменять его на «установлен».
Спасибо.