将HTML变量传递给Javascript

时间:2014-06-30 16:22:51

标签: 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 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您的问题是,当您从未提供过标记时,您引用了标记的ID:

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

应该:

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

你的JS aslo并没有要求价值。只是对象本身。它应该是:

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

然后你的脚本就可以了。

答案 2 :(得分:0)

您正在使用getElementById,但尚未定义任何Id值。

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

forexample,

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