【问题标题】:HTML button won't call function. What's wrong?HTML 按钮不会调用函数。怎么了?
【发布时间】:2017-01-02 18:44:42
【问题描述】:

我的 html 按钮不会调用函数。我不知道怎么了。该功能似乎还可以,但是当我调用它时它什么也没做。如果问题很愚蠢或者我做错了什么,我是一个初学者,非常抱歉。

function max()
{
 var number1 = document.getElementById('first');
 var number2 =  document.getElementById('second');
    if (number1>number2)
    {
     document.getElementById('result').innerHTML = "The first number is larger";
    }
  else if (number1===number2)
    {
       document.getElementById('result').innerHTML = "The numbers are equal";
    }
  else
    {
      document.getElementById('result').innerHTML = "The second number is larger";
    }
  }
 <div id="box">
   <h3>Maximum between two numbers</h3>
   <p>First number: <input type="text"; id="first"></p><br>
  <p>Second number: <input type="text"; id="second"></p>
   <input type="submit"; id="submit"; value="Maximum"; onclick ="max()"> <br>
   <p>The result is:</p><span id="result"> </span>
</div>

【问题讨论】:

  • 你已经定义了max,但是调用了multiply
  • 为什么你的 HTML 属性之间有分号?!你从哪里学来的?!删除它们!
  • 只需更改函数名称即可使用
  • Uncaught TypeError: lang is not a function 可能重复— 同样的问题,只是用max而不是lang
  • 我希望你不介意,但我已经编辑了你的问题以删除所有 CSS,因为它与你所问的内容无关,而且 CSS 比 JS 和HTML 合并。

标签: javascript function


【解决方案1】:

max 本身是input 元素中的一个属性。当直接从 DOM 元素调用时,某些名称不能用于函数。使用另一个函数名。

请看this的回答。

【讨论】:

    【解决方案2】:

    问题在于函数的名称:

    function max_demo()
           {
             
            var number1 = document.getElementById('first');
            var number2 =  document.getElementById('second');
               if (number1>number2)
               {
                document.getElementById('result').innerHTML = "The first number is larger";
               }
             else if (number1===number2)
               {
                  document.getElementById('result').innerHTML = "The numbers are equal";
               }
             else
               {
                 document.getElementById('result').innerHTML = "The second number is larger";
               }
             }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <div id="box">
       <h3>Maximum between two numbers</h3>
       <p>First number: <input type="text"; id="first"></p><br>
      <p>Second number: <input type="text"; id="second"></p>
       <input type="submit" id="submit" value="Maximum" onclick ="max_demo()"> <br>
       <p>The result is:</p><span id="result"> </span>
    </div>

    【讨论】:

    • 为什么函数名有问题?
    • 如果我们使用它作为函数名,它会抛出一个错误''Uncaught TypeError: max is not a function"。而且 max() 是 javascript 中的一个方法
    • 不,它会工作,检查这个codepen
    • 如果max() 是一种方法,那么它为什么会抛出错误max is not a function?我知道它确实会引发该错误,但是...为什么我可以创建一个名为max() 的全局函数并从脚本的另一部分成功调用它?你在正确的轨道上,但解释是错误的。
    • @Mi-Creativity -- 您能否在您的代码中添加“" 并检查一次。
    猜你喜欢
    • 1970-01-01
    • 2018-01-15
    • 2010-12-29
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多