Javascript 为什么赢了';和我一起工作?

Javascript 为什么赢了';和我一起工作?,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

我很难让这段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="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;
    }