循环遍历 ASP.NET 列表框 Javascript 不起作用

Looping through a ASP.NET Listbox with Javascript not working

我正在尝试使用 Javascript 遍历 ASP.NET 列表框,但是当它在 for 循环中遇到 lboxRight 变量时,我得到一个空对象或未定义对象。这是我的。

function save() {
  var containsTypeA = false;
  var containsTypeB = false;
  var containsType = false;
  var lboxRight = $get('<%=lboxRight.ClientID %>').value;

  if (lboxRight != null) {
    for (var i = 0; i < lboxRight.options.length; ++i) {
      if (lboxRight.options[i].value == "Type A") {
        containsTypeA = true;
      }
      if (lboxRight.options[i].value == "Type B") {
         containsTybeB = true;
      }
    }
    containsType = true;
  }
}

有一个 onclick 事件映射到按下保存按钮时调用此函数。我是否以正确的方式查看列表框并告诉我它是否具有此特定值?我的意图是让列表框包含 Type A 作为一个值,然后当它循环遍历列表框时,如果它在列表中找到该值,它将为其他一些逻辑将该变量设置为 true 。 Visual Studio 似乎在抱怨 for 循环行,我在这里做错了什么?我正在使用在其他地方编写的完全相同的循环并且它工作正常,所以我不明白为什么这个不起作用。

我写的有什么问题吗?

如果它抱怨 for 循环行上的某些内容为空或未定义,我会检查一下 lboxRight.options 是什么,因为您已经检查了 lboxRight。

实际上,选项的存在没有意义,因为 lboxRight 被设置为 select 的值而不是 select。

尝试更改

var lboxRight = $get('<%=lboxRight.ClientID %>').value;

var lboxRight = $get('<%=lboxRight.ClientID %>');