2014-06-30 2 views
0

Donc j'essaie de faire une calculatrice de dégâts, où l'utilisateur écrit les variables suivantes: Niveau, rang militaire, force et niveau d'arme. Mais le problème semble que je ne peux pas envoyer de variables à javascript et l'écriture de document n'envoie rien. Pouvez-vous vérifier le code et m'aider? CordialementPasser la variable HTML à Javascript

<form id="form"> 

Your level:<input type="number" name="level"><br> 
Your strength: <input type="number" name="str"><br> 
Your military rank: <input type="number" name="mr"> <br> 
Your weapon(no weapon=0) <input type="number" name="wep"><br> 
<input type="submit" value="Submit">` 
</form> 

<script type="text/javascript"> 
var level = document.getElementById('level').id; 
var str = document.getElementById('str').id; 
var mr = document.getElementById('mr').id; 
var wep = document.getElementById('wep').id; 
hit = ((level*4)+str)*(1+(mr/20))*(1+(wep/10)); 
document.write(hit); 
+3

Vous utilisez 'getElementById', mais aucun de vos éléments n'a d'ID. Vous obtenez alors '.id' au lieu de' .value', et vous vous demandez pourquoi cela ne fonctionne pas? –

Répondre

3

Vous ne voulez pas obtenir le id de l'élément:

document.getElementById('level').id 

Vous voulez obtenir est valeur:

document.getElementById('level').value 

En outre, afin de utilisez getElementById, votre élément doit avoir un id:

<input type="number" name="level" id="level"> 

Alternativement, sans changer le balisage, vous pouvez utiliser getElementsByName et de saisir le premier élément de la collection retournée:

document.getElementsByName('level')[0].value 
0

Vous utilisez getElementById mais n'ont pas défini de valeurs Id.

Avec le balisage html actuel, vous pouvez utiliser getElementsByName() à la place. La méthode renvoie un tableau d'éléments correspondants.

Parexemple,

var str = document.getElementsByName('str')[0].value; 
+1

@Popnoodles ah merci de souligner que, sur «id» sur le cerveau. – Kami

1

Votre problème est que vous faites référence à l'ID de votre étiquette, lorsque vous ne l'a jamais donné un:

Your level:<input type="number" name="level"><br> 

doit avoir:

Your level:<input type="number" name="level" id="level"><br> 

Votre JS ne demande pas non plus la valeur. Juste l'objet lui-même. Il devrait être:

var level = document.getElementById('level').value 

Ensuite, votre script va fonctionner.

Questions connexes