2014-06-30 137 views
0

所以我试图让损害计算器,用户在其中写入以下变量:级别,军衔,兵力和武器级别。但问题似乎我不能发送变量到JavaScript和文件写入不发送任何东西。你能检查代码并帮助我吗? 问候将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

您正在使用'getElementById',但没有任何元素具有ID。然后你得到'.id'而不是'.value',你想知道为什么它不起作用? –

回答

3

你不想获得元素的id

document.getElementById('level').id 

你要得到它的

document.getElementById('level').value 

此外,为了使用getElementById,你的元素需要有一个id

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

另外,在不改变的标记,你可以返回集合中使用getElementsByName抢第一个元素:

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

您正在使用getElementById但没有定义的任何ID值。

使用当前的html标记,您可以改为使用getElementsByName()。该方法返回一个匹配元素的数组。

forexample,

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

@Popnoodles啊谢谢指出,脑子里有'id'。 – Kami

1

你的问题是,你所引用的标签的ID,当你从来没有给它一个:

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

应具备:

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

你的JS也没有要求价值。只是物体而已。它应该是:

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

然后你的脚本将工作。