2013-03-27 7 views
15

Zasadniczo mam opcję wyboru, która pobiera wszystkie nazwy tras z bazy danych jako opcje $ touroperations. $ touroptions może zawierać wszystko od 1-20 wartości (wybierz opcje).jQuery - Sprawdź Jeśli wybrana jest opcja zaznaczenia

Co muszę zrobić, to mieć funkcję jQuery to zrobić w następujący sposób: -

If (any option) #sel-destination-tour is selected { 
//DO SOMETHING 
} 
ELSE { 
//DO SOMETHING ELSE 
} 

prostu nie jestem pewien, w jaki sposób mogę to zrobić.

HTML

<select name="sel-destination-tour" id="sel-destination-tour" class="input-select-tour"> 

    <option value="0"></option> 

    <?php echo $touroptions ?> 

</select> 
+0

Domyślam się, że podałeś 0, że 0 jest domyślną opcją, a chcesz, aby to nie było nic warte? –

+0

http://stackoverflow.com/a/149820/4695280 –

Odpowiedz

23

Można sprawdzić, czy opcja testując atrybut wartość wybierz

if($('#sel-destination-tour').val()){ 
    // do something 
} else { 
    // do something else 
} 
+0

Cool snippet, działa –

+3

co jeśli wartość opcji wynosi 0? – Rob

3

spróbować

$('#sel-destination-tour').val() == ""){ 
    //nothing selected; 
}else{ 
    //something selected; 
} 
1

Zakładając, że masz pierwsze element jak pokazano w twoim przykładzie, zrobi to ...

if ($("#sel-destination-tour").val() != "0") { 
    // nothing selected 
} else { 
    // something selected 
} 
0

Sprawdź val() (zakładając, 0 oznacza brak wartości):

if ($('#sel-destination-tour').val() != 0) { 
    // has a value selected 
} 
else { 
    // does not have a value selected 
} 

Przykład - http://jsfiddle.net/infernalbadger/RrtT7/

+0

Tylko komentarz: metoda '.val()' nie działa w niektórych przypadkach, nie znam prawidłowych sytuacji, zdarza się w FF (szczególnie w przypadku dużego zestawu opcji, które 'change' jest programowo wyzwalane) – Red

4

śledzić zdarzenia zmiany select i robić swoje spożywczych odpowiednio

$(function(){ 

$("#sel-destination-tour").change(function(){ 

if($(this).val() !="0") 
    { 
    // logic goes here 
    } 
    else 
    { 
    // no option is selected 
    } 
}); 

}); 
0

W mojej sytuacji val() powracał [] i pojawia się jako true. Zmieniłem go na:

if($('#sel-destination-tour').val()[0]){ 
    // do something 
} else { 
    // do something else 
} 
Powiązane problemy