什么';我的HTML和javascript代码有什么问题?

什么';我的HTML和javascript代码有什么问题?,javascript,html,Javascript,Html,我想实现一个简单的测量收敛程序,但是转换按钮不起作用,它甚至没有改变答案框的值。我现在该怎么办 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Measurement Conversion</title> </head> <body> <h1 align="center">

我想实现一个简单的测量收敛程序,但是转换按钮不起作用,它甚至没有改变答案框的值。我现在该怎么办

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Measurement Conversion</title>
</head>
<body>

<h1 align="center">
    Measurement Conversion
</h1>

  <div align="center"><center><table border="0">
    <tr>
      <input type="text" name="what" size="15">
    </tr>
    <tr>
      <td align="center">From:<br>
      <select name="unit" size="9" onChange="convert()">
        <option name="meter">meter</option>
        <option name="mile">mile</option>
        <option name="yard">yard</option>
      </select></td>
    </tr>
    <tr>
      <input type="button" onclick="convert()">Convert it now!</button></td>
    </tr>
    <tr>
      <input type="text" name="answer" title="answer" size="70" value="None"></td>
    </tr>
  </table>
  </center></div>

<script>
function convert() {
    // var FromVal, ToVal, FromName, ToName, v1;

    v1 = document.getElementByName("what").value;
    document.getElementByName("answer").value = v1;

    var unit = document.getElementByName("unit").name;


    if (unit == "yard") {
        var meter = "meter= " + 0.9144*document.getElementByName("what").value;
        var mile = "mile = " + 0.000568181818*document.getElementByName("what").value;
        document.getElementById("answer").value = meter + mile;
    }

    if (unit == "meter") {
        var yard = "yard = " + 1.0936133*document.getElementByName("what").value;
        var mile = "mile = " + 0.000621371192*document.getElementByName("what").value;
        // var meter = "m = " + 0.9144*document.getElementByName("what").value

        document.getElementById("answer").value = yard + mile;
    }

    if (unit == "mile") {
        var meter = "meter = " + 1609.344*document.getElementByName("what").value
        var yard = "yard = " + 1760*document.getElementByName("what").value

        document.getElementById("answer").value = meter + yard;
    }

}
</script>

</body>
</html>

测量转换
测量转换
发件人:
米 英里 院子 现在转换它! 函数转换(){ //变量FromVal,ToVal,FromName,ToName,v1; v1=document.getElementByName(“what”).value; document.getElementByName(“答案”).value=v1; var unit=document.getElementByName(“unit”).name; 如果(单位=“码”){ var meter=“meter=“+0.9144*document.getElementByName(“what”).value; var mile=“mile=“+0.0005681818*document.getElementByName(“what”).value; document.getElementById(“应答”)。值=米+英里; } 如果(单位=“米”){ var yard=“yard=“+1.0936133*document.getElementByName(“what”).value; var mile=“mile=“+0.000621371192*document.getElementByName(“what”).value; //var meter=“m=“+0.9144*document.getElementByName(“what”).value document.getElementById(“答案”)。值=码+英里; } 如果(单位=“英里”){ var meter=“meter=“+1609.344*document.getElementByName(“what”).value var yard=“yard=“+1760*document.getElementByName(“what”).value document.getElementById(“应答”)。值=米+码; } }

我的
convert()
函数似乎有问题。

没有getElementByName。
在输入中添加属性id,然后改用getElementById。

先使用最基本的故障排除方法,然后到这里来询问具体问题,帮助您解决问题。 添加
警报(“单击按钮”)
转到函数的第一行,查看是否收到警报。如果执行此操作,请将警报移动到变量语句之后,并将其更改为
警报(“what=“+what+”,“answer=“+answer+”,unit=“+unit”);

并确保变量赋值达到预期效果。继续这样做,当遇到无法自行解决的特定问题时,请返回。

没有
getElementByName
函数,只有
getElementsByName
函数,而这不是它的工作方式。请检查浏览器控制台a阅读文档。在报告(或请求帮助)时,描述预期行为和实际行为通常是一种好的做法一个bug。你应该添加这些细节。你还应该研究编写单元测试——如果你对每个函数都进行了单元测试,你可能会发现哪里出了问题,你自己可能会重复