2009-12-09 5 views

Répondre

1

Eh bien, je pense que l'utilisation de la propriété selectedIndex de votre liste déroulante devrait être suffisant:

$('#categories').change(function() { 
    if(this.selectedIndex!=0) { 
     var myCars = new Array("Saab", "Volvo", "BMW"); 
     addRowToTable(this.value, myCars); 
     $('#listings').hide(); 
    } 
}); 

Vous pouvez, bien sûr, faire preuve de créativité avec des sélecteurs jQuery, mais si votre besoin actuel est juste skippin En ce qui concerne le premier élément, je pense que c'est la solution la plus simple possible.

+0

Je suggère de tester 'this.selectedIndex> 0', car' selectedIndex' peut indiquer '-1' si même le premier élément n'a jamais été sélectionné. Mieux que 'selectedIndex', ne parle que de' if (this.value) '? –

0

En supposant des « catégories » est l'ID de votre liste déroulante vous pouvez le faire comme ceci:

$('#categories option:selected') 

qui devrait renvoyer toutes les options sélectionnées dans le dropdownlist (dont il y aura un ou aucun).

Obtenir la valeur de l'élément sélectionné peut être fait comme ceci:

$('#categories option:selected').val() 

Pour voir si l'élément sélectionné et le premier élément sont les mêmes juste une comparaison rapide fera:

if ($('#categories option:selected').val() == $('#categories option:first').val()) 
{ 
//do something here 
} 
0

Si l'utilisateur est de sélectionner une seule valeur:

  1. Ajouter une valeur « invalide » distincte au premier élément
  2. Vérifier que la valeur et agir en conséquence

Si l'on suppose la valeur non valide est égal à zéro et tous les autres choix ont des valeurs entières:

$('#categories option:selected').change(function() { 
    if ($(this).val() === 0) { 
     return; 
    } 

    var myCars = new Array("Saab", "Volvo", "BMW"); 
    addRowToTable(this.value, myCars); 
    $('#listings').hide(); 
}); 
Questions connexes