【问题标题】:Javascript and html: button isn't workingJavascript 和 html:按钮不起作用
【发布时间】:2016-11-13 13:31:47
【问题描述】:

我正在制作一个包含数字数组的程序,然后用户输入一些值并单击验证。他输入的值必须与数字数组顺序一致,如果不是,用户会收到一条警报消息,抱歉,但是第一个输入栏中的值决定了比较应该从数组的哪个数字开始。例如,如果数组包含像 {2,4,6,8,10} 这样的数字 并且用户在第一个输入栏中输入 6,然后在接下来的两个栏中输入 8 和 10,他应该得到结果“678”但是如果他没有正确输入第一个数字,假设他输入了 3,因为3 不在数组中,那么不管他在其他输入栏中输入什么,他都会得到“对不起”的结果。同样,如果用户在第一个输入栏中输入 4,然后在第二个输入栏中输入 8,他仍然应该得到结果“对不起”,因为数组的顺序是 {4,6,8} 而不是 {4, 8}.. 现在,我制作了一个程序,但问题是,每当我点击验证按钮时,什么都没有发生:/.. 这是我的代码。这也是我得到的结果:https://jsfiddle.net/53j19rpt/

<html>

<head>
</head>
<script type="text/javascript">
    var arr = [];
    var t;
    var num = 2;
    var x = [];
    for (var x = 0; x < 4; x++) {
        document.getElementById("one" + x);
    }

    function go() {
        for (var t = 0; t < 4; k++) {
            x[t] = num * (t + 1);
        }
        for (var k = 0; k < 4; k++) {
            if (document.getElementById("one0").value >= x[k])
                if (document.getElementById("one" + k).value == x[k])
                    document.write(document.getElementById("one" + k).value);
                else
                    document.write("Sorry");
        }
    }
</script>

<body>
    <input id="one0" type="text">
    <input id="one1" type="text">
    <input id="one2" type="text">
    <input id="one3" type="text">
    <input type="button" id="verifyBtn" value="verify" onclick="go()">
</body>

</html>

【问题讨论】:

    标签: javascript jquery arrays html


    【解决方案1】:

    检查一下

    for (var t = 0; t < 4; k++) {
                x[t] = num * (t + 1);
            }
    

    代码在这里进行无限循环。 t 的值在代码中没有增加。

    【讨论】:

    • 我仍然没有得到任何输出
    【解决方案2】:

    这里有多个问题:

    1. x首先被声明为一个数组(即var x = [];,但紧接着,x被用作for循环的迭代器(即for (var x = 0; x &lt; 4; x++) {)。稍后在函数@987654324的开头@,当给x赋值时,它会尝试访问x[t],这对整数不起作用。所以在迭代器中使用不同的变量:

      for (var x = 0; x < 4; x++) { document.getElementById("one" + x); }

    2. 在第二个for 循环中,变量t 没有递增,从而导致无限循环。增加t,而不是k

      for (var t = 0; t &lt; 4; t++) {

    3. if 语句没有大括号,这会导致仅执行下一行...尽管如果两个条件都计算为是的。如果您需要在 if 表达式之后添加多行代码,请将它们用大括号括起来。

    请看下面的例子:

    var arr = [];
    var t;
    var num = 2;
    var x = [];
    for (var h = 0; h < 4; h++) {
      document.getElementById("one" + x);
    }
    
    function go() {
      for (var t = 0; t < 4; t++) {
        x[t] = num * (t + 1);
      }
      for (var k = 0; k < 4; k++) {
        if (document.getElementById("one0").value >= x[k]) {
          if (document.getElementById("one" + k).value == x[k]) {
            document.write(document.getElementById("one" + k).value);
          }
          else {
            document.write("Sorry");
          }
        }//could have an else after this when one0's value is less than x[k]
      }
      console.log('done with function go()');
    }
    <input id="one0" type="text">
    <input id="one1" type="text">
    <input id="one2" type="text">
    <input id="one3" type="text">
    <input type="button" id="verifyBtn" value="verify" onclick="go()">

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 2021-04-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多