我正在尝试为我的网站制作一个非常简单的计算器。
基本上,我希望人们能够将重量放入文本框中,单击“计算剂量”,然后脚本将其权重乘以我将为每个页面设置的数字。
这就是我现在所拥有的。它不仅不起作用,而且还阻止我的一个广告显示:
<div>
<input id="inputweight" type="text" />
<input type="button" value="Calculate Dose" onClick="calculate()">
<input id="result" />
</div>
<script>
function calculate() {
var weight = document.getElementById('inputweight').value;
var result = document.getElementById('result');
var dosage = weight.value * 1;
result.value = dosage;
}
</script>
它出了什么问题?
答案 0 :(得分:2)
您在按钮
中缺少结束标记/>
<input type="button" value="Calculate Dose" onClick="calculate()"/>
您已经存储了重量值
var weight = document.getElementById('inputweight').value;
所以你不需要这个var dosage = weight.value * 1;
所以使用var dosage = weight * 1;
function calculate() {
var weight = document.getElementById('inputweight').value;
var result = document.getElementById('result');
var dosage = weight * 1;
result.value = dosage;
}
答案 1 :(得分:1)
这一行:
var weight = document.getElementById('inputweight').value;
和此:
var dosage = weight.value * 1;
不能很好地合作。您正在检索该值,然后检索该值......这些值无法正常工作 因此,将第二行替换为:
var dosage = weight * 1;
此外:您应该检查控制台是否有错误,它应该显示在那里。
我假设(或者,更准确地说)不再有效的广告因为javascript执行通常在发生错误后终止而停止。
答案 2 :(得分:1)
只需更新此行(删除上面已提取的value
属性):
var dosage = * 1;
这样可行,但您可能还想添加此项以增加类型安全性(它将权重解析为数字):
var dosage = parseInt(weight, 10) * 1;
答案 3 :(得分:1)
在您的代码块中,您在第二个输入语句的末尾缺少结束/
。哪个应该在你的HTML中给你一个问题。
<input type="button" value="Calculate Dose" onClick="calculate()"/>
在功能的第三行,你也不需要重量。值。相反它应该是:
var dosage = weight * 1;
答案 4 :(得分:1)
小提示演示修改后的示例: http://jsfiddle.net/x38ommxs/
function calculate() {
var weight = document.getElementById('inputweight').value;
var result = document.getElementById('result');
var dosage = weight * 1;
result.value = dosage;
}
&#13;
<div>
<input id="inputweight" type="text" />
<input type="button" value="Calculate Dose" onClick="calculate()" />
<input id="result" />
</div>
&#13;
在按钮上添加了缺少的结束标记
更改剂量以将存储在重量中的值乘以1。