【问题标题】:What's wrong with my HTML and javascript code?我的 HTML 和 javascript 代码有什么问题?
【发布时间】:2017-01-21 16:55:53
【问题描述】:

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

<!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>

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

【问题讨论】:

  • 没有getElementByName 函数,只有getElementsByName 函数,这不是它的工作原理。检查您的浏览器控制台并阅读文档。
  • 在报告(或寻求帮助)错误时描述预期行为和实际行为通常是一种很好的做法。您应该添加这些详细信息。您还应该考虑编写单元测试 - 如果您对每个功能都有单元测试,您可能会自己找出问题所在

标签: javascript html


【解决方案1】:

如何先使用最基本的故障排除方法,然后来这里询问具体问题以帮助您解决问题。 添加alert("button Clicked"); 到你的函数的第一行,看看你是否收到警报。如果这样做,请将警报移动到变量语句之后并将其更改为 alert("what = " + what + ", "answer = " + answer + ", unit = " + unit); 并确保你得到了你对变量赋值的期望。像这样继续下去,当你遇到一个你似乎无法解决的特定问题时,回来。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      相关资源
      最近更新 更多