代码之家  ›  专栏  ›  技术社区  ›  Manny0

使用javascript和html表单计算两点之间的距离[重复]

  •  0
  • Manny0  · 技术社区  · 8 年前

    我有点卡住了,因为每当我在输入x1、x2、y1、y2的数字后单击“计算距离”按钮时,所有内容都会清除,而不是计算

     function calculateDistance()
                {
                    var pointx1 = parseInt(document.getElementById("pointx1").value);
                    var pointy1 = parseInt(document.getElementById("pointy1").value);
                    var pointx2 = parseInt(document.getElementById("pointx2").value);
                    var pointy2 = parseInt(document.getElementByID("pointy2").value);
              
                    var distance = Math.sqrt(Math.Pow((pointx1-pointx2),2)+Math.Pow((pointy1-pointy2),2));
    
                    window.alert("Distance: "+distance);
    
                }    
    <!DOCTYPE html>
    <html> 
        <head>
            <meta charset = "utf-8">
            <title> Distant Points </title>
        <script type = "text/javascript"> </script>
            </head>
                <body>
                    <form name = "f1" method="post">
                        <label>Point 1:</label><br>
                        x:<input type = "text" id = "pointx1" size = "30"/> &nbsp; y1:<input type = "text" id = "pointy1" size = "30"/> <br>
                        <label>Point 2:</label> <br>
                        x:<input type = "text" id = "pointx2" size = "30"/> &nbsp; y2:<input type = "text" id = "pointy2" size = "30"/>
                        <button onclick = "calculateDistance()">Calculate Distance</button>
                 </form>
            </body>
    </html>
    1 回复  |  直到 8 年前
        1
  •  2
  •   Cjmarkham    8 年前

    原因是您有几个拼写错误,并且您正在使用表单。

    首先是打字错误:

    它是 document.getElementById document.getElementByID 其次 Math.pow Math.Pow

    由于按钮位于表单中,因此您还需要 return false 防止默认表单提交干扰您的代码。

    function calculateDistance() {
      var pointx1 = parseInt(document.getElementById("pointx1").value);
      var pointy1 = parseInt(document.getElementById("pointy1").value);
      var pointx2 = parseInt(document.getElementById("pointx2").value);
      var pointy2 = parseInt(document.getElementById("pointy2").value);
    
      var distance = Math.sqrt(Math.pow((pointx1-pointx2),2)+Math.pow((pointy1-pointy2),2));
    
      window.alert("Distance: "+distance);
    }
    <form name = "f1" method="post">
      <label>Point 1:</label><br>
      x:<input type = "text" id = "pointx1" size = "30"/> &nbsp; y1:<input type = "text" id = "pointy1" size = "30"/> 
      <br>
      <label>Point 2:</label> <br>
      x:<input type = "text" id = "pointx2" size = "30"/> &nbsp; y2:<input type = "text" id = "pointy2" size = "30"/>
      <button onclick = "calculateDistance(); return false;">Calculate Distance</button>
    </form>