我有一个这样的ASP.NET下拉列表:
<asp:DropDownList ID="ddlMyDropDown" runat="server"> <asp:ListItem>Please pick one</asp:ListItem> <asp:ListItem>option1</asp:ListItem> <asp:ListItem>option2</asp:ListItem> <asp:ListItem>option3</asp:ListItem> <asp:ListItem>option4</asp:ListItem> </asp:DropDownList>
CustomValidator被绑定到它,以查看用户是否选择了一个选项.它调用以下JavaScript / JQuery函数:
function checkValueSelected(sender,args) { var index = $("#ContentPlaceHolder1_ddlMyDropDown").selectedIndex; args.IsValid = index > 0; }
但是当使用Firebug调试时索引未定义. JQuery选择器找到选择#ContentPlaceHolder1_ddlMyDropDown,这不是问题. selectedIndex属性是否不存在?
在互联网上,我发现几乎完全一样的例子,它的作品.我在这一个很迷茫
更新
这是Firebug显示的:
如你所见,控制变量是某种数组,其中一个条目实际上是我想要控制的.我不认为JQuery的ID选择器返回多个值?
解决方法
selectedIndex不在那里
你应该使用jquery的支持
var index = $("#ContentPlaceHolder1_ddlMyDropDown").prop('selectedIndex');
要么
var index = $("#ContentPlaceHolder1_ddlMyDropDown").get(0).selectedIndex;