2009-11-05 5 views
0

Est-il possible de vérifier si toutes les valeurs sélectionnées à l'intérieur d'un div, à l'intérieur d'un form est égale à 1? Je ne veux pas écrire des centaines d'instructions if. La raison en est que j'essaie de valider le formulaire, et que je veux vérifier que l'utilisateur a sélectionné quelque chose. La valeur standard dans CHAQUE liste de sélection est 1 (rien sélectionné).Comment vérifier avec Javascript si toutes les valeurs 'SELECT' sont égales à 1 dans un formulaire?

<form name="myform" onchange="return jsfunction();" etc...> 
    <div id="formdiv"> 
     many many selects, all having a selected option value of 1 
    </div> 
</form> 

Répondre

1

écrit pas le code

Obtenir tous les sélectionner à l'aide elments

document.getElementsByTagName ('select'); 

qui retourne un tableau.

Parcourez la baie et récupérez la valeur sélectionnée et vérifiez-la.

Pour obtenir la valeur sélectionnée, vous pouvez utiliser

document.getElementById (elementinArrayIndex.id) .value;

où elementinArrayIndex est l'élément select dans l'itération de la boucle en cours.

Si tous les éléments de sélection que vous voulez vérifier sont à l'intérieur de l'élément div avec id « formdiv » vous pouvez utiliser

document.getElementById ("formdiv").getElementsByTagName ("select"); 
+0

juste une question ... Pourriez-vous écrire la boucle rapidement, de sorte que je comprends comment faire une boucle dans un tableau comme vous l'avez mentionné? Merci –

0

Si vous voulez savoir si tous des cases sont cochées, obtenir tous avec un

var selects = document.getElementsByTagName('select'); 

ensuite en boucle à travers et les compter

var checked = 0; 
for(var i in selects) 
{ 
    checked += selects[i].value; 
} 

si coché est égal au nombre de cases de sélection, elles sont toutes cochées.

if(checked == selects.length) 
{ 
    //yay 
} 

méfiez-vous bien sûr que s'il y a beaucoup de boîtes de sélection, cela peut prendre un certain temps, mais il n'y a pas beaucoup que vous pouvez faire à ce sujet. Si vous rencontrez un problème de performance, votre système de sélection est peut-être trop compliqué ...

Questions connexes