我需要获取一个下拉列表的ID(ASP.Net控件),以便可以判断是否已选择一项。

现在,我正尝试将下拉列表的计数写入警告框,如下所示:

OnClientClick="alert(document.getElementID('<%=ListBox1.ClientID %>').options.length)


我得到的错误是“需要文档”。

最佳答案

首先,让我们将代码中的getElementID更正为getElementById

OnClientClick="alert(document.getElementById('<%=ListBox1.ClientID %>').options.length);"


如果您想知道选择了哪个项目,请使用selectedIndex属性:

OnClientClick="alert(document.getElementById('<%=ListBox1.ClientID %>').selectedIndex);"


如果您想要选项的值而不是索引,请使用带有索引的options集合:

OnClientClick="var s=document.getElementById('<%=ListBox1.ClientID %>');alert(s.options[s.selectedIndex].value);"


编辑:
如果您尝试使用的控件不是服务器控件,则可以使用该控件,例如:

<input type="button" onclick="alert(document.getElementById('<%=ListBox1.ClientID %>').options.length);" />


由于具有服务器控件,因此不能在控件内部使用脚本标记()。您必须从后面的代码中设置属性:

TheButton.OnClientClick = "alert(document.getElementById('" + ListBox1.ClientID + "').options.length);";

10-08 00:54