2014-12-02 8 views
6

Ich habe eine HTML-Multi AuswahlboxjQuery Multi Wählen Sie eine Option - Prüfen Sie, ob eine Option ausgewählt ist oder nicht

<form action="form_action.php" method="Post"> 
<select name="cars[]" multiple id="select_id"> 
    <option value="all" id="option_id">All</option> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 
<input type="submit"> 
</form> 

Was ich versuche zu tun, prüfen Sie, ob Option „Alle“ ausgewählt ist oder nicht in jQuery.

Was ich versucht habe, ist

<script> 
     $(document).ready(function() 
     { 
      $('#option_id') 
       .click(
        function() 
        { 
         if ($("#select_id option[value='all']").length == 0) { //value does not exist so add 
          //Do something if not selected 
         } 
         else 
         { 
          //DO something if selected 
         } 
         //$("#select_id option:selected").removeAttr("selected");   //Remove 
         //$("#select_id option").attr('selected', 'selected');  //Add 
        } 
       ); 
     }); 
    </script> 

Aber es funktioniert nicht.

Kann mir bitte jemand helfen?

Vielen Dank im Voraus für die Hilfe.

Antwort

12

Bitte tun, wie unten Code

$('#option_id').click(function(){ 
if ($("#select_id option[value=all]:selected").length > 0){ 
    alert('all is selected'); 
} 
else{ 
    //DO something if not selected 
} 
//$("#select_id option:selected").removeAttr("selected");   //Remove 
//$("#select_id option").attr('selected', 'selected');  //Add 
}); 

Sie können unter Geige überprüfen

Multi Select

+0

diese Methode funktioniert nicht für mich. –

+0

@TheThinker: Dies funktioniert für obige Frage. Wenn Ihre Frage anders ist, dann schreiben Sie bitte Ihre separate Frage dazu? und wenn Ihre Frage gleich ist, dann lassen Sie mich wissen, welchen Fehler Sie bekommen? –

4

können Sie :selected Selektor für Option verwenden, um festzustellen, ob es aktiviert ist oder nicht

if ($("#select_id option[value=all]:selected").length > 0){ 
    //all is selected 
} 
+0

Es funktioniert nicht Es ist eine Mehrfachauswahl ist. Also, Option ist ein Array. Können Sie mir bitte einen anderen Weg zeigen? –

1

Von dem, was ich sehe, Sie versuchen, ob zu erkennen, es ausgewählt wurde, wenn Sie die Möglichkeit, in der ändern <select> Box, richtig?

Try this:

$("#select_id").change(function() { 
    if ($(this).find("option:selected").val() == "all") { 
    // all is selected 
    } else { 
    // all isn't selected 
    } 
});