Javascript 为什么赢了';和我一起工作?
我很难让这段javascript正常工作。每当我尝试时,它都不会在我的div中输入任何内容。它只是将?weight=NumberInputed&measure=lbsOrkgs&submit=submit添加到URLJavascript 为什么赢了';和我一起工作?,javascript,html,Javascript,Html,我很难让这段javascript正常工作。每当我尝试时,它都不会在我的div中输入任何内容。它只是将?weight=NumberInputed&measure=lbsOrkgs&submit=submit添加到URL <h2>How small must you be to become a black hole?</h2> <form name="form1"> <input id="howMuch" type="num
<h2>How small must you be to become a black hole?</h2>
<form name="form1">
<input id="howMuch" type="number" name="weight" placeholder="How much do you weigh?">
<input type="radio" name="measure" value="lbs" checked="true">lbs
<input type="radio" name="measure" value="kgs">kgs
<input type="submit" name="submit" value="Submit" onClick="calc(); return false;">
</form>
<br/>
<div id="insert"><div/>
<script language="JavaScript" type="Text/JavaScript">
function calc() {
var speedOfLight = 299792458.0;
var gravityConstantYoctometre = 66738400000000.0;
var finalHeight = 0.0;
var weight = document.form1.weight.value;
var measure = document.form1.measure.value;
measure = measure.trim();
if (measure !== "kgs"){
weight *= 0.4536;
}
finalHeight = (4.0 * gravityConstantYoctometre * weight)/Math.pow(speedOfLight,2);
finalHeight = (finalHeight).toFixed(5);
var message = '<em>You would have to be ' + finalHeight + ' yoctometres (1 metre x 10<sup>-24</sup>) tall before you would become a black hole.</em>';
document.getElementById('insert').innerHTML = message;
}
</script>
你必须有多小才能成为黑洞?
磅
千克
函数计算(){
var光速=299792458.0;
var GravityConstantyOctometer=66738400000000.0;
var最终高度=0.0;
var权重=document.form1.weight.value;
var度量=document.form1.measure.value;
measure=measure.trim();
如果(测量!=“千克”){
重量*=0.4536;
}
最终重量=(4.0*重力常数八米*重量)/数学功率(光速,2);
最终重量=(最终重量).toFixed(5);
var message='在你成为黑洞之前,你必须是'+finalHeight+'约10米(1米x 10-24)高';
document.getElementById('insert').innerHTML=message;
}
在没有.trim()函数的情况下,它可以完美地执行,但它无法识别与“lbs”或“kgs”类似的度量值。这里发生了什么 这里:
函数计算(){
var光速=299792458.0;
var GravityConstantyOctometer=66738400000000.0;
var最终高度=0.0;
var-weight=document.getElementById(“多少”).value;
var radio=document.getElementsByName('measure');
var-measure=“”
对于(var i=0;i
您希望修剪做什么?你们看起来像是从一个单选按钮上得到测量值,这意味着你们知道它周围不应该有空格,等等。至于它为什么失败,并没有立即的想法。控制台中有javascript错误吗?我一直在想,在我变成黑洞之前,我必须有多少米高……好吧,我修正了语法错误,仍然没有运气。我想调整度量值,因为当我在浏览器中查看代码时,它似乎在我的两个单选按钮值中添加了空格。我不知道为什么。我想这可能就是if无法计算的原因,所以我添加了.trim()。另外,修复大括号后没有javascript错误。因为document.form1.measure
返回一个HTMLCollection(它引用一个单选按钮组,而不是单个控件),它没有值
属性。因此,您正在调用undefined.trim()
。哦,不要命名表单控件submit
,因为它会屏蔽表单的提交方法。请不要只发布代码,解释错误以及如何修复错误。
function calc() {
var speedOfLight = 299792458.0;
var gravityConstantYoctometre = 66738400000000.0;
var finalHeight = 0.0;
var weight = document.getElementById("howMuch").value;
var radio = document.getElementsByName('measure');
var measure = ""
for(var i =0; i< radio.length; i++)
{
if(radio[i].checked)
measure = radio[i].value;
}
measure = measure.trim();
alert(measure); //For testing purpose
alert(weight); //For testing purpose
if (measure !== "kgs"){
weight *= 0.4536;
}
finalHeight = (4.0 * gravityConstantYoctometre * weight)/Math.pow(speedOfLight,2);
finalHeight = (finalHeight).toFixed(5);
var message = '<em>You would have to be ' + finalHeight + ' yoctometres (1 metre x 10<sup>-24</sup>) tall before you would become a black hole.</em>';
document.getElementById('insert').innerHTML = message;
}