首页 > 解决方案 > Javascript - 无法读取 null 的属性“值” - 组合框值

问题描述

想知道是否有人可以帮助以下代码。我有一个名为的组合框"cboAgreement",它是一个包含两个值"Agree""Disagree".

我有一个表单,评论网格最初是隐藏的,但是当用户选择时"Disagree",评论网格应该出现。

当我检查网页时,它会返回此错误:

“未捕获的类型错误:无法读取 null 的属性‘值’”

我尝试将 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% 做错了!

提前感谢您的帮助。

标签: javascriptcomboboxsequence

解决方案


这意味着您正在尝试访问未定义对象的属性,换句话说,您试图在它仍然为空时获取它的值。这通常发生在我们在使用对象之前不测试对象时。我建议在获取元素值之前检查元素是否存在。

   if (decision) {
      decision = decision.value; 
   }

另请查看此快速教程: https ://idiallo.com/javascript/uncaught-typeerror-cannot-read-property-of-null


推荐阅读