将HTML变量传递给Javascript
Passing HTML variable to Javascript
所以我想做一个伤害计算器,用户写以下变量:等级,军阶,力量和武器等级。但问题似乎我不能发送变量到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);
您不希望获得元素的id
:
document.getElementById('level').id
你想要得到它的值:
document.getElementById('level').value
同样,为了使用getElementById
,元素需要有一个id
:
<input type="number" name="level" id="level">
或者,在不更改标记的情况下,可以使用getElementsByName
并获取返回集合中的第一个元素:
document.getElementsByName('level')[0].value
你的问题是你引用你的标签的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
您正在使用getElementById
,但尚未定义任何Id值。
对于当前的html标记,您可以使用getElementsByName()
代替。该方法返回一个匹配元素的数组。
例如,
var str = document.getElementsByName('str')[0].value;
相关文章:
- Javascript html每点击一次就会更改url
- 通过javascript/html访问twitter共享iframe
- 使用鼠标悬停JavaScript/HTML显示文本
- JavaScript-HTML表单到JSON(空值)和格式
- 使用javascript html实时预览文本区域输入
- 如何每秒从一个变量中提取一定次数的javascript/html
- 使用变量值作为'名称标识符'javascript/html
- JavaScript HTML Onclick
- 非侵入性Javascript HTML注入
- AppendChild Form / Table [Javascript/Html/PHP]
- 按钮don't使用onClick-Javascript HTML重定向
- 在库(javascript/HTML)中将“name”替换为“id”
- 如何确定使用 javascript/html 单击了哪个对象/图像
- 新的javascript HTML元素不遵循css规则
- JavaScript/HTML 错误的解决方案
- 从图像URL javascript html保存图像文件
- javascript html使用webstorage保存表单
- Javascript+HTML中的日期选择器准备好了吗?(需要:DD、MM、YY的单独字段加上日历选择器)
- 谷歌地图/融合表Javascript HTML赢得't显示/可视化所有多边形数据(通过色标)
- JavaScript/HTML命令行小部件