当我运行以下JS时,我总是会弹出确认框,尽管该列表明显有项目。
<asp:ListBox ID="list" runat="server" Width="135px" Rows="8" />
function CheckListEmpty() {
if ($("#list").length == 0) {
if (confirm("Are you sure?")) {
//they clicked OK so save and close
return true;
}
else {
//do nothing they hit cancel.
return false;
}
}
else
return true;
}
我做错了什么?
答案 0 :(得分:3)
$("#list").length
返回jQuery选择器匹配的元素数
它没有匹配任何东西,因为你没有使用ListBox的ClientId
;您需要将其更改为$("#<%= list.ClientId %>")
。
要获取<select>
中的项目数,您需要撰写$("#<%= list.ClientId %> option").length
答案 1 :(得分:1)
runat =“server”会导致ASP.NET动态创建唯一ID,而不是您指定的ID。因此ID jQuery选择器找不到它。添加一个类并选择它或“[id * ='ListBox']”以查找包含您指定的ID的ID。
答案 2 :(得分:0)
“length”不是javascript中SELECT元素的参数。您可以改为使用(select).elements.length
。
答案 3 :(得分:0)
$(document).ready(function() {
...
});
始终最好将您的功能放在其中以确保DOM已准备好