使用Javascript无法正常运行ASP.NET Listbox

时间:2015-04-15 03:00:20

标签: javascript c# asp.net listbox

我尝试使用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循环行,我在这里做错了什么?我使用完全相同的循环写在别处,它工作正常,所以我不明白为什么这个没有工作。

我写这篇文章有什么不妥吗?

1 个答案:

答案 0 :(得分:0)

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

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

尝试更改

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

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