我试图从我的HTML表单中创建JS变量

时间:2016-10-24 18:06:04

标签: javascript html forms

为什么这段代码不起作用?我似乎无法以变量的形式将HTML表单传输到JS。 我正在制作一个二次公式计算器(只是为了好玩)BTW。

<html>
    <head>
        <script type="text/javascript">
        var a = document.getElementById(a1).value;
        var b = document.getElementById(b1).value;
        var c = document.getElementById(c1).value;
        var root = Math.sqrt(Math.pow(b, 2) - 4 * a * c);

        var calc1 = (b2 + root) / (2 * a);
        var calc2 = (b2 - root) / (2 * a)
        function checkVal(){

        if(calc1 > calc2){
        alert("The lowest x - intercept is" + calc2 + "," + " the highest is" + calc1 + ".");
        }else{
        alert("The lowest x - intercept is" + calc1 + "," + " the highest is" + calc2 + ".");

    }; 
        </script>
    </head>
    <body>
        <form name ="inputvals" method = "get">
            <input type = "text" id = "a1" value = "">
            <input type = "text" id = "b1" value = "">
            <input type = "text" id = "c1" value = "">
            <input type=button onclick="checkVal()" />
        </form>
    </body>
</html>

2 个答案:

答案 0 :(得分:0)

首先,我在checkVal函数中移动了变量,否则它不会在点击时获取任何输入的值。

其次,您需要在document.getElementById('a1').value

中引用ID

第三,由于document.getElementById('a1').value返回一个字符串,您需要执行parseInt(document.getElementById('a1').value) ..或parseFloat(...)

第四,你使用一个变量b2,它没有在任何地方声明,所以我声明了它,但不知道它是如何获得它的。

说到Math.sqrt(Math.pow(b, 2) - 4 * a * c),我不是数学家,因此无法纠正该部分中的任何数学错误

&#13;
&#13;
function checkVal() {
  var a = parseInt(document.getElementById('a1').value) || 0;
  var b = parseInt(document.getElementById('b1').value) || 0;
  var c = parseInt(document.getElementById('c1').value) || 0;
  
  var root = Math.sqrt(Math.pow(b, 2) - 4 * a * c) || 0;

  var b2 = b;  // ???

  var calc1 = (b2 + root) / (2 * a);
  var calc2 = (b2 - root) / (2 * a);

  if (calc1 > calc2) {
    alert("The lowest x - intercept is" + calc2 + ", the highest is" + calc1 + ".");
  } else {
    alert("The lowest x - intercept is" + calc1 + ", the highest is" + calc2 + ".");
  }
}
&#13;
<form name="inputvals" method="get">
  <input type="text" id="a1" value="">
  <input type="text" id="b1" value="">
  <input type="text" id="c1" value="">
  <input type=button onclick="checkVal()" />
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:-2)

变量不是&#34;绑定&#34;到了田野。更改值不会更改变量的值。您需要在单击按钮时重新读取它们,以获取新输入的值。

声明变量(var a = document.getElementById(a1).value;等)以及使用它们的逻辑的行必须 你的checkVal函数。