2010-08-13 10 views
15

Jak powinienem sprawdzić, czy pierwsza opcja jest wybrana, a następnie wykonać jakiś kod.sprawdź, czy wybrana jest pierwsza opcja:

Coś takiego, jeśli pole wyboru "Moje_Zgaszone_pływanie" ma wybraną pierwszą opcję, a następnie wykonaj kod.

<select name="My_Saved_Shipping"> 
<option>Select/Enter Address</option> 
<option value="1">text</option> 
<option value="2">text2</option> 
</select> 

Odpowiedz

7
<script type="text/javascript"> 
    if($("select[name='My_Saved_Shipping']").selectedIndex == 0) 
    { 
     //This is where your code goes 
     alert('First Element is selected'); 
    } 
</script> 

Jeśli chcesz przetestować dla tekstu w option, przeznaczenie:

<script type="text/javascript"> 
    if($("select[name='My_Saved_Shipping']").text == 'Select/Enter Address') 
    { 
     //This is where your code goes 
     alert('First Element is selected'); 
    } 
</script> 
+0

Jak działa ten konstrukt? Czy $ ("select [name = 'My_Saved_Shipping']") nie zwraca kolekcji JQuery? Nie ma na nim właściwości selectedIndex ... Musiałem użyć $ ("wybierz [name =" My_Saved_Shipping '] ") [0] podejście, aby dostać się do elementu DOM, który ma właściwość selectedIndex. – gap

+7

dodaj [0] do swojej odpowiedzi, powinno być w ten sposób: if ($ ("select [name = 'My_Saved_Shipping']") [0] .selectedIndex == 0) – evilReiko

2

Edit: Modified selektor odpracować nazwy, również dodaje kod do wireup do obsługi zmiana na wybieranie i umieszczone w gotowej obsługi.

$(function(){ 
     $("select[name='My_Saved_Shipping']").change(function() {    
      if (this.selectedIndex == 0){ 
       <!-- do stuff --> 
       } 
      }); 
}); 
+0

Ponownie Brak dostępu do wyboru znaczników niestety – user357034

+0

@ user357034 zaktualizowany, zawiera również jquery do podłączenia do zdarzenia zmiany dla wybranego – heisenberg

+0

Korzystne rozwiązanie - wykrywanie, stałe i proste. – tfont

19
if ($('select[name=My_Saved_Shipping]')[0].selectedIndex === 0) { 
    // do something 
} 

Byłoby najlepiej, aby dać <select>id (zazwyczaj dopasowanie name) - selektor #id jest szybszy niż selektor [attr=val].

+0

+1 Dla nieużywania jQuery; p –

+0

W swoim przykładzie jest to jednak druga opcja (która ma indeks 1). Myślę, że najlepiej jest zinterpretować pytanie jako "Wykonaj kod, gdy pierwsza opcja ** z wartością ** jest wybrana";) – BalusC

+0

@BalusC, skąd wiemy, który '

0

Dlaczego nie używać somthing jak:

<select name="My_Saved_Shipping"> 
    <option value="-1">Select/Enter Address</option> 
    <option value="1">text</option> 
    <option value="2">text2</option> 
</select> 

i testu jeżeli wartość jest ujemna?

+0

Brak dostępu do wyboru znaczników, niestety – user357034

15

Jest to kolejna metoda:

$('.myselect').change(function() { 
    if ($(this).children('option:first-child').is(':selected')) { 
     //do something 
    } 
}); 
+1

najściślejszą odpowiedzią jQuery dla mnie – Macumbaomuerte

+0

Dzięki najlepsza odpowiedź – Picrasma

Powiązane problemy