Plusieurs if et ELSE if en javascript
Donc ce qui se poussé à ce tableau est personne à charge sur une radio quelques boîtes. J'ai eu ce pour standard et en fauteuil roulant sièges:
if(document.getElementById('standardseat').checked) {
//Standard seat is checked
seatsArray.push(e.posX, e.posY);
}
else if(document.getElementById('wheelchairseat').checked) {
//Wheelchair seat is checked
seatsArray.push("Wheelchair " + e.posX, e.posY);
}
Et c'est l'équivalent du code de formulaire:
<input id="standardseat" type="radio" name="seat" value="standard" /> Standard seat
<input id="wheelchairseat" type="radio" name="seat" value="wheelchair" /> Wheelchair seat
Mais je veux ajouter un peu plus de la radio des boîtes, qui sont distinctes de la norme/un fauteuil siège:
<input id="backnave" type="radio" name="area" value="backnave" /> Back Nave
<input id="frontnave" type="radio" name="area" value="frontnave" /> Front nave
<input id="middlenave" type="radio" name="area" value="middlenave" /> Middle nave
Et je veux le pousser à également inclure ce. Pour expliquer, si l'utilisateur a coché l'option "Fauteuil roulant siège" et "Milieu de la nef", la commande doit de sortie ("MN, en Fauteuil roulant" + e.posX, e.posY). Est-il possible de faire cela sans manuellement, y compris beaucoup de monde si pour chaque résultat possible (je peut même ajouter un troisième ensemble de la radio, des boîtes)?
Merci!
OriginalL'auteur IceDragon | 2010-07-13
Vous devez vous connecter pour publier un commentaire.
Je voudrais construire la chaîne qui décrit le président avec un relativement petit nombre de
if
états, et ensuite appeler lapush
à la fin.Donc quelque chose comme:
Cela peut facilement être étendue pour tenir compte de d'autres groupes de blocs.
Les deux desc? Pour l'autre? hein? Suivez la chaîne. Il commence à vide, si c'est un fauteuil roulant siège, il ajoute que la chaîne vide (c'est inutile, comme un siège normal de ne pas noter que c'est un siège normal) et, il ajoute celui de "BN" ou "MN", ou "le FN," Remarque, qu'il serait inutile de faire des virgules normal sièges.
Je pense que c'est ce que vous vous dîtes: Le côté droit (évaluation) est calculé avant la cession, de sorte qu'il n'ajoute que quelle que soit la valeur était avant la ligne est exécutée. Laissez-moi savoir si ce n'est pas la réponse à votre question ou faire sens.
Ah, oui. Cela me semble la meilleure interprétation.
Il a obtenu, merci!
OriginalL'auteur Jeffrey Blake
Vous avez raison, IceDragon, il n'est pas judicieux d'utiliser plusieurs si/d'autre, parce que chaque fois que vous ajoutez des options, vous devrez réécrire votre code. Il y a un certain nombre de façons d'éviter cela. Ici n'est qu'une méthode:
Avis que, dans le
selections
objet, nous gardons la trace de sélections que l'utilisateur a fait jusqu'à présent. Ensuite, lorsque l'utilisateur clique sur l'image (ou tout ce qui déclenche le code de travail), la fonction simplement formats les valeurs déjà recueilli.Le seul inconvénient de la façon dont j'ai écrit ce code est que les navigateurs ont tendance à cache l'état des boutons radio, de sorte qu'un bouton radio peut être déjà sélectionné, mais l'a choisi() la fonction n'est pas appelée. Un rapide et sale solution de contournement consiste à ajouter un ID à la balise form et l'exécuter sur chargement de la page:
Où la "forme" est l'attribut ID de la balise form.
OriginalL'auteur Mark Eirich
En règle générale, lorsque vous avez beaucoup de si/d'autre-si vous songez à la remplacer par un switch/case déclaration.
http://www.javascriptkit.com/javatutors/switch.shtml
Maintenant, ce ne serait pas nécessairement approprié pour votre situation, selon le type de siège est une condition distincte de sa position (front/middle/back).
Il y a peut être un plus élégant que votre code, mais je ne suis pas complètement comprendre le contexte. Que faites-vous avec ce tableau?
Manaster Merci. Votre pickiness semble être aussi forte que la mienne. 🙂
OriginalL'auteur George Marian
Faire la
value
ce que vous souhaitez voir apparaître dans la chaîne de résultat. Si vous voulez 'MN' faire lavalue
'MN'.Alors au lieu d'écrire un
if
déclaration pour chaque état possible vous pourrait faire une boucle par lainput
objets à trouver celui qui est coché.Obtenir toutes les entrées de chaque pour comme si...
Ensuite une boucle sur chaque et de trouver celle qui est cochée. Puis juste concat la
value
attributs pour faire de votre chaîne de résultat.OriginalL'auteur jasongetsdown