【发布时间】:2021-02-24 12:17:56
【问题描述】:
我的 html 中有这段 javascript,它获取表单输入,将其放入一个函数并返回一个 json。然后我想根据这个 json 中的值隐藏或显示某些表单元素。
目前,除了更改我试图隐藏/显示的元素的 style.display 属性之外,我可以做所有这一切,我可以用 getElementbyId 找到它们没问题(已经用其他东西测试过)但是变化我做的风格似乎没有做任何事情。
正如您在下面看到的,我已经发出了一些警报以确保一切正常,并且它们似乎都符合我对该功能的需求。显示 style.display 的警报甚至与我尝试将其更改为的内容相匹配,但是即使它显示“none”,表单元素仍会显示。
<script type="text/javascript">
let selected = document.getElementById('selection1');
let optional_toggle = document.getElementById("optional_element");
let button = document.getElementById("button")
button.onclick = function() {
choice1 = selected.value;
fetch('/form_choice/' + choice1).then(function(response) {
response.json().then(function(data) {
if (data.show_optional === "True") {
optional_toggle.style.display = ""
window.alert("first part of if");
window.alert(optional_toggle.style.display);
window.alert(data.show_optional);
}
else {
optional_toggle.style.display = "none"
window.alert("second part of if");
window.alert(optional_toggle.style.display);
window.alert(data.show_optional);
console.log(optional_toggle);
}
}
)
}
)
}
</script>
编辑:我添加了 console.log 行,但控制台中似乎没有显示任何内容。 console log image
【问题讨论】:
-
我认为条件
data.show_optional === "True"始终为真,或者您的 optional_toggle 未加载,尝试控制台记录您的元素 -
@Spring 我尝试过切换位,但我认为第一部分并不总是正确的,因为警报确实显示了 if 的第一部分和第二部分之间的切换.您能否再解释一下您的意思:未加载 optional_toggle/控制台记录它,因为我是新手,不确定您的意思!谢谢
-
表示代码是在dom加载之前执行的,你能把代码显示在控制台
console.log(optional_toggle) -
哦,好吧,我只是想弄清楚如何使用我正在使用的 IDE 显示控制台日志,因为我似乎无法在浏览器或 python 控制台中看到日志
-
您可以在浏览器中看到登录,只需输入“F12”并单击控制台TAB
标签: javascript html jquery css