JS中的Listbox.Length始终为0

时间:2010-02-12 14:24:58

标签: asp.net javascript jquery

当我运行以下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;

}

我做错了什么?

4 个答案:

答案 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已准备好