所以我正在尝试制作伤害计算器,用户可以写下以下变量:等级,军衔,力量和武器等级。但问题似乎我不能发送变量到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);
答案 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;