【问题标题】:Javascript max and min not workingJavascript 最大值和最小值不起作用
【发布时间】:2015-04-08 18:10:38
【问题描述】:

我正在尝试创建一个页面,让用户输入三个数字,并从输入中打印下面的最大值和最小值。我已经使用了 Math.max/min 函数,还尝试了 if 语句,但是当我单击提交时,什么都没有显示。一些见解将不胜感激,谢谢!

function max() {
    var x = document.getElementById("num1").value;
    var y = document.getElementById("num2").value;
    var z = document.getElementById("num3").value;

    var maximum = Math.max(parseInt(x), parseInt(y), parseInt(z));

    document.getElementById("max").innerHTML= maximum;
    }
    function min() {

    var x = parseInt(document.getElementById("num1").value);
    var y = parseInt(document.getElementById("num2").value);
    var z = parseInt(document.getElementById("num3").value);


    document.getElementById("min").innerHTML = Math.min(x,y,z);
    }

这是我的html

<p>Enter First Number:</p>
<input type="text" name = "number1" id="num1"><br>
<p>Enter Second Number</p>
<input type="text" name = "number2" id="num2"><br>
<p>Enter third number</p>
<input type="text" name = "number3" id="num3"><br>

<input type="submit" value="Submit" onclick="max(); min(); "><br /> 
<p>Max =</p><p id ="max"></p><br />
<p>Min =</p><p id ="min"></p><br />

【问题讨论】:

    标签: javascript input max min


    【解决方案1】:

    &lt;input type="submit"/&gt; 替换为&lt;button type="submit" value="" onclick="minmax();"&gt;Submit&lt;/button&gt;

    并添加JS函数:

    function minmax() {
        min();
        max();
    }
    

    【讨论】:

    • 它们的元素类型无关紧要。函数的调用方式不是。这个答案没有解释为什么 OP 不起作用,或者这个答案为什么起作用。
    【解决方案2】:

    您的问题似乎与您附加活动的方式有关。

    当我使用时它工作正常:

    document.querySelector( '[type="submit"]' ).addEventListener( 'click', function() {
       max();
       min();
    }, false );
    

    http://jsfiddle.net/yemxrmqq/

    【讨论】:

      【解决方案3】:

      你只需要更改按钮相关的标签,而不是:

      <input type="submit" value="Submit" onclick="max(); min(); "><br />
      

      简单地说:

      <button type="submit" value="Submit" onclick="max(); min()">Click</button><br />
      

      【讨论】:

      • 这如何解决 OP 的问题?
      【解决方案4】:

      这里的答案都没有告诉你为什么你的代码不起作用。

      内联侦听器中的标识符首先被解析为放置它们的元素的属性。 Input elements 有一个默认的 max 属性,因此在内联侦听器中,标识符 max 将引用输入的 max 属性。因此在任何文档中:

      <input onclick="console.log(max)">
      

      显示''(即空字符串)。

      因此,您可以将函数的名称更改为更有意义的名称,或者更改调用它们的上下文,以便标识符不会在元素上解析,并且 OP 代码可以正常工作。例如

      <input type="submit" value="Submit" onclick="callBoth()">
      

      function callBoth() {
        max();
        min();
      }
      

      顺便说一句,表单外的输入类型提交只是一个按钮,所以你应该使用:

      <input type="button" ...>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-19
        • 1970-01-01
        • 1970-01-01
        • 2022-08-08
        • 2011-12-22
        • 1970-01-01
        • 1970-01-01
        • 2017-09-20
        相关资源
        最近更新 更多