Comment vérifier si une zone de sélection est vide en utilisant JQuery / Javascript

En utilisant jQuery Mobile, j'ai une boîte de sélection qui est remplie dynamiquement à partir d'une base de données. En ce moment, la population de cette case à cocher fonctionne parfaitement. J'ai ajouté une fonctionnalité qui consiste en un bouton qui appelle une fonction via un événement 'on click'. Le travail de cette fonction est de savoir si cette case à cocher particulière a été remplie ou non; si ce n'est pas le cas, elle ne fera tout simplement rien, mais sinon elle fonctionnera bien. Mon problème est de déterminer si oui ou non cette case de sélection est vide ou non.

Voici un exemple très simplifié de ce que je traite:

<li>
    <label for="fruit_name">Fruit</label>
    <select name="some_fruit" id="fruit_name" onclick="populate_box('fruit', this);">
    </select>
</li>

Ma fonction qui est appelée à partir d'un bouton séparé, ressemble à ceci:

function isSelextBoxEmpty(selectBoxId) {
    var selected_value = $('#fruit_name');

    /* More options... still testing the proper way:
    var selected_value = $('#fruit_name').text;
    var selected_value = $('#fruit_name').value;
    var selected_value = $('#fruit_name').length;
    var selected_value = $('#fruit_name option:selected', this);
    var selected_value = document.getElementById('fruit_name');
    var selected_value = document.getElementById('fruit_name').length;
    var selected_value = document.getElementById('fruit_name').value;
    var selected_value = document.getElementById('fruit_name').innerHTML;
    */

    if(selected_value) {
        alert("NOT null, value: " + selected_value);
        //do something
    }
    else {
        alert("null, value: " + selected_value);
        //do something
    }
}

Ne vous inquiétez pas de ce que cela fait et comment il le fait. En ce moment, ce qui compte pour moi, c'est que je ne peux pas vérifier si la case à cocher est vide, Je ne suis tout simplement pas sûr de savoir comment s'y prendre. J'ai beaucoup lu à travers les forums et la documentation mais il y a beaucoup d'implications à faire car il dépend de la mise en œuvre elle-même.

Par exemple, l'utilisation de document.getElementById(...)... ne retournera pas nécessairement false et cela dépend de la façon dont vous l'utilisez. L'utilisation de $("#someID")... dans jQuery peut ou non produire les résultats souhaités. J'ai déjà essayé plusieurs fois comme vous pouvez le voir dans les lignes commentées , qui peuvent toutes être évaluées dans l'instruction if(...).

Avez-vous des suggestions ou des idées sur la façon d'y parvenir? Merci à l'avance!

23
demandé sur AGE 2012-06-14 23:01:13

3 réponses

Pour vérifier si la boîte de sélection a des valeurs:

if( $('#fruit_name').has('option').length > 0 ) {

Pour vérifier si la valeur sélectionnée est vide:

if( !$('#fruit_name').val() ) { 
62
répondu Engineer 2012-06-14 19:13:29

Une façon correcte d'obtenir la valeur sélectionnée serait

var selected_value = $('#fruit_name').val()

Et alors vous devriez faire

if(selected_value) { ... }
10
répondu Claudio Redi 2012-06-14 19:15:05

Une autre façon correcte d'obtenir la valeur sélectionnée serait d'utiliser ce sélecteur:

$("option[value="0"]:selected")

Meilleur pour vous!

2
répondu gmpacheco 2014-03-25 19:21:07