Используем innerHTML, чтобы изменить значение элемента div, основанные на флажок
Я пытаюсь изменить текст в div, основываясь на том, был ли установлен флажок. Я новичок в Javascript, так что это то, что я пытался... если кто-нибудь укажет мне, где я сошел с рельсов, я буду признателен.
function SetContent() {
if (document.complianceformAA.compliance_AA.checked == true) {
document.getElementById('ComplianceSummary').innerHTML = "A compliance concern is found for Key Element I-A.";
} else {
document.getElementById('ComplianceSummary').innerHTML = "Key Element I-A is met.";
}
}
<div id="Concerns">
<form id="complianceformAA">
<input type="checkbox" id="compliance_AA">
<label for="compliance_AA">Compliance Concern?</label>
</form>
</div>
<button onclick="SetContent ();">Generate Summary</button>
<div id="ComplianceSummary"></div>
3 ответа:
Вы не должны использовать именованные элементы , вместо этого выберите
id
с помощьюDocument.getElementById()
function SetContent() { if (document.getElementById('compliance_AA').checked) { document.getElementById('ComplianceSummary').innerHTML = "A compliance concern is found for Key Element I-A."; } else { document.getElementById('ComplianceSummary').innerHTML = "Key Element I-A is met."; } }
<div id="Concerns"> <form id="complianceformAA"> <input type="checkbox" id="compliance_AA"> <label for="compliance_AA">Compliance Concern?</label> </form> </div> <button onclick="SetContent ();">Generate Summary</button> <div id="ComplianceSummary"></div>
Во-первых, сделайте отступ в коде:
Во-вторых, вы не получаете таких элементов. Вы получите его с помощью одного из следующих методов:function setContent() { if (document.complianceformAA.compliance_AA.checked == true) { document.getElementById('ComplianceSummary').innerHTML="A compliance concern is found for Key Element I-A."; } else { document.getElementById('ComplianceSummary').innerHTML="Key Element I-A is met."; } }
Это возвращает элемент на основе ID. Например, это:
document.getElementById('checkbox');
Получилось бы так:
<input type="checkbox" id="checkbox"></input>
Это возвращает все элементы с одинаковым тегом.
document.getElementsByTagName('button');
Может вернуться
HTMLCollection [ <button>, <button>, <button>, <button> ]
С этим HTML код:
<div id="buttons"> <button> <button> <button> <button> </div>
Возвращает все элементы с определенным именем класса. Например:
document.getElementsByClassName('a')
Может вернуться
HTMLCollection [ <button.a>, <button.a>, <button.a>, <button.a> ]
С этим кодом
<div id="buttons"> <button class="a"> <button class="a"> <button class="a"> <button class="a"> </div>
Это возвращает все элементы с указанным именем. Например:
document.getElementsByName('hi');
Может вернуться
NodeList [ <button.className> <button.className> ]
С этим HTML кодом:
<div id="buttons"> <button name="hi" class="className"> <button name="hi" class="className"> </div>
Итак, что вы хотите для вашего javascript это:
function setContent() { checkBox = document.getElementById('compliance_AA'); if (checkBox.checked) { document.getElementById('ComplianceSummary').innerHTML = "A compliance concern is found for Key Element I-A."; } else { document.getElementById('ComplianceSummary').innerHTML = "Key Element I-A is met."; } }
Вот пример:
function setContent() { checkBox = document.getElementById('compliance_AA'); if (checkBox.checked) { document.getElementById('ComplianceSummary').innerHTML = "A compliance concern is found for Key Element I-A."; } else { document.getElementById('ComplianceSummary').innerHTML = "Key Element I-A is met."; } }
<div id="Concerns"> <form id="complianceformAA"> <input type="checkbox" id="compliance_AA"> <label for="compliance_AA">Compliance Concern?</label> </form> </div> <button onclick="setContent();">Generate Summary</button> <div id="ComplianceSummary"></div>