2012-05-06 25 views
10

Mam dropdownlist ASP.NET tak:selectedIndex jest niezdefiniowana z jQuery w 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> 

CustomValidator jest związany z tym, aby sprawdzić, czy użytkownik wybrał opcję. To wywołuje następujące JavaScript/JQuery funkcji:

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

ale indeks jest undefined podczas debugowania z Firebug. Selektor JQuery znajduje select#ContentPlaceHolder1_ddlMyDropDown, więc to jest , a nie problem. Czy właściwość selectedIndex nie istnieje?

W Internecie znalazłem przykłady, które robią prawie dokładnie to samo i to działa. Jestem zupełnie stracił na ten jeden ...

Aktualizacja

To co Firebug pokazuje:

inspect

Jak widać, zmienna control jest jakaś tablica, z jeden wpis, który tak naprawdę chcę być w control. Nie sądzę, że selektor ID JQuery zwraca wiele wartości?

+0

Można użyć właściwości asp.net to sprawdzić? – sarwar026

+0

@ sarwar026 Dowiedziałem się, co jest nie tak, zamierzam edytować pytanie. – MarioDS

Odpowiedz

7

selectedIndex nie jest tam ...

należy użyć prop jQuery ...

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

lub

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

Dzięki, po prostu przeczytałem, że '$ (" # id ")' NIE jest tym samym co 'document.getElementById (" id ").' – MarioDS

+0

@MarioDeSchaepmeester to jest to samo ... kto ci to powiedział? –

+0

Zobacz komentarze [tutaj] (http://api.jquery.com/id-selector/). Apparantly to nie to samo, zobacz zrzut ekranu Firebuga. Selektor id zwraca tablicę, zwróci element DOM, jeśli zostanie to wykonane przez 'document.getElementById'. – MarioDS

Powiązane problemy