2012-05-06 32 views
10

Tôi có một DropDownList ASP.NET như thế này:selectedIndex là undefined với jQuery trong DropDownList

<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> 

Một CustomValidator được ràng buộc với nó, để xem nếu người dùng chọn một lựa chọn. Nó gọi hàm javascript/JQuery sau đây:

function checkValueSelected(sender, args) { 
     var index = $("#ContentPlaceHolder1_ddlMyDropDown").selectedIndex; 
     args.IsValid = index > 0; 
    } 

nhưng chỉ mục là undefined khi gỡ lỗi bằng Firebug. Bộ chọn JQuery tìm thấy select#ContentPlaceHolder1_ddlMyDropDown, vì vậy đó là không phải là sự cố. Tài sản selectedIndex có tồn tại không?

Trên internet, tôi đã tìm thấy các ví dụ gần như giống hệt nhau và hoạt động. Tôi khá mất một ngày này ...

Cập nhật

Đây là những gì Firebug cho thấy:

inspect

Như bạn thấy, biến control là một số loại mảng, với một mục mà thực sự là những gì tôi muốn ở trong control. Tôi không nghĩ rằng bộ chọn ID của JQuery trả về nhiều giá trị?

+0

Bạn có thể sử dụng tài sản asp.net để kiểm tra điều này? – sarwar026

+0

@ sarwar026 Tôi phát hiện ra những gì sai, sẽ chỉnh sửa câu hỏi. – MarioDS

Trả lời

7

selectedIndex là không có ...

bạn nên sử dụng prop của jquery ...

var index = $("#ContentPlaceHolder1_ddlMyDropDown").prop('selectedIndex'); 

hoặc

var index = $("#ContentPlaceHolder1_ddlMyDropDown").get(0).selectedIndex; 
+0

Cảm ơn, tôi chỉ đọc rằng '$ (" # id ")' không giống như 'document.getElementById (" id ").' – MarioDS

+0

@MarioDeSchaepmeester nó giống nhau .... ai đã nói với bạn điều đó? –

+0

Xem nhận xét [tại đây] (http://api.jquery.com/id-selector/). Kiểm dịch nó không giống nhau, xem ảnh chụp màn hình Firebug của tôi. Bộ chọn id trả về một mảng, nó sẽ trả về một phần tử DOM nếu được thực hiện bởi 'document.getElementById'. – MarioDS

Các vấn đề liên quan