想知道是否有人可以帮助以下代码。我有一个名为"cboAgreement"
的组合框,它是一个带有两个值"Agree"
和"Disagree"
的下拉列表。
我有一个表单,其中注释网格最初是隐藏的,但是当用户选择"Disagree"
时,注释网格应该会出现。
当我检查网页时,它会返回此错误:
“未捕获的TypeError:无法读取null的属性'value'”
我尝试将if语句更改为decision.getvalue()
,但还是一样。
<script type="text/javascript">
var commentsGrid = document.getElementById("comms");
var decision = document.getElementById("cboAgreement").value;
commentsGrid.style.visibility = "hidden";
if (decision == "Disagree") {
commentsGrid.style.visibility = "visible";
}else{
commentsGrid.style.visibility = "hidden";
}
</script>
,组合框如下:
<sq8:ComboBox runat="server" ID="cboAgreement"><Items>
<sq8:ComboBoxItem runat="server" Text="Agree" Selected="True"></sq8:ComboBoxItem>
<sq8:ComboBoxItem runat="server" Text="Disagree"></sq8:ComboBoxItem>
</Items>
</sq8:ComboBox>
<sq:BindableControl runat="server" TargetControlID="cboAgreement" DataField="cboAgreement"></sq:BindableControl>
我在做什么错?我应该说,我是JavaScript新手,所以99.9%的人做错了事!
在此先感谢您的帮助。
答案 0 :(得分:0)
这意味着您正在尝试访问未定义对象的属性, 换句话说,您正在尝试获取仍然为空的值 当我们在使用对象之前不测试对象时,通常会发生这种情况。 我建议在获取元素值之前检查该元素是否存在。
if (decision) {
decision = decision.value;
}
也请查看此快速教程: https://idiallo.com/javascript/uncaught-typeerror-cannot-read-property-of-null